4 use Test::More tests => 19;
9 Mouse::Meta::Class->create(
13 } qr/You must pass an ARRAY ref of superclasses/;
17 Mouse::Meta::Class->create(
21 } qr/You must pass an ARRAY ref of attributes/;
24 Mouse::Meta::Class->create(
28 } qr/You must pass a HASH ref of methods/;
31 isa_ok(Mouse::Meta::Class->create("FooBar"), "Mouse::Meta::Class");
32 is FooBar->meta->name, "FooBar";
35 Mouse::Meta::Class->create(
37 superclasses => [ "FooBar", "Mouse::Object" ],
39 Mouse::Meta::Attribute->new(
47 dooo => sub { "iiiit" },
52 isa_ok Baz->new(), "FooBar";
53 is Baz->new()->foo, "yay";
54 is Baz->new()->dooo, "iiiit";
56 my($anon_pkg1, $anon_pkg2);
58 my $meta = Mouse::Meta::Class->create_anon_class(
59 superclasses => [ "Mouse::Object" ],
61 dooo => sub { "iiiit" },
64 $anon_pkg1 = $meta->name;
66 isa_ok($meta, "Mouse::Meta::Class", 'create_anon_class');
67 ok($meta->is_anon_class, 'is_anon_class');
68 is $meta->name->new->dooo(), "iiiit";
70 my $anon2 = Mouse::Meta::Class->create_anon_class(cache => 1);
71 $anon_pkg2 = $anon2->name;
73 ok($anon2->is_anon_class);
76 isnt $meta->name, $anon2->name;
79 # all the stuff are removed?
80 ok !$anon_pkg1->isa('Mouse::Object');
81 ok !$anon_pkg1->can('dooo');
82 ok !$anon_pkg1->can('meta');
84 ok $anon_pkg2->can('meta'), 'cache => 1 makes it immortal';