4 use Test::More tests => 14;
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/;
32 Mouse::Meta::Class->create()
33 } qr/You must pass a package name/;
36 isa_ok(Mouse::Meta::Class->create("FooBar"), "Mouse::Meta::Class");
37 is FooBar->meta->name, "FooBar";
40 Mouse::Meta::Class->create(
42 superclasses => [ "FooBar", "Mouse::Object" ],
44 Mouse::Meta::Attribute->new(
45 name => "foo", is => "rw", default => "yay"
49 dooo => sub { "iiiit" },
54 isa_ok Baz->new(), "FooBar";
55 is Baz->new()->foo, "yay";
56 is Baz->new()->dooo, "iiiit";
59 my $meta = Mouse::Meta::Class->create_anon_class(
60 superclasses => [ "Mouse::Object" ],
62 dooo => sub { "iiiit" },
65 isa_ok($meta, "Mouse::Meta::Class");
66 is $meta->name, "Mouse::Meta::Class::__ANON__::SERIAL::1";
67 is $meta->name->new->dooo(), "iiiit";
69 my $anon2 = Mouse::Meta::Class->create_anon_class();
70 is $anon2->name, "Mouse::Meta::Class::__ANON__::SERIAL::2";