4 use Test::More tests => 14;
9 Mouse::Meta::Class->create(
12 } qr/You must pass an ARRAY ref of superclasses/;
16 Mouse::Meta::Class->create(
19 } qr/You must pass an ARRAY ref of attributes/;
22 Mouse::Meta::Class->create(
25 } qr/You must pass a HASH ref of methods/;
29 Mouse::Meta::Class->create()
30 } qr/You must pass a package name/;
33 isa_ok(Mouse::Meta::Class->create("FooBar"), "Mouse::Meta::Class");
34 is FooBar->meta->name, "FooBar";
37 Mouse::Meta::Class->create(
39 superclasses => [ "FooBar", "Mouse::Object" ],
41 Mouse::Meta::Attribute->new(
42 name => "foo", is => "rw", default => "yay"
46 dooo => sub { "iiiit" },
51 isa_ok Baz->new(), "FooBar";
52 is Baz->new()->foo, "yay";
53 is Baz->new()->dooo, "iiiit";
56 my $meta = Mouse::Meta::Class->create_anon_class(
57 superclasses => [ "Mouse::Object" ],
59 dooo => sub { "iiiit" },
62 isa_ok($meta, "Mouse::Meta::Class");
63 is $meta->name, "Mouse::Meta::Class::__ANON__::SERIAL::1";
64 is $meta->name->new->dooo(), "iiiit";
66 my $anon2 = Mouse::Meta::Class->create_anon_class();
67 is $anon2->name, "Mouse::Meta::Class::__ANON__::SERIAL::2";