X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=t%2F800_shikabased%2F008-create_class.t;h=687671e5fbc253723b584dde01f083ddffd018db;hp=387861eb0f84d56f5d80412d22eb80b13590cdaf;hb=ad022aac12ce95ee336af9dde0758ae98037f3ab;hpb=6cfa1e5e70616fb102915489c02d8347ffa912fb diff --git a/t/800_shikabased/008-create_class.t b/t/800_shikabased/008-create_class.t index 387861e..687671e 100644 --- a/t/800_shikabased/008-create_class.t +++ b/t/800_shikabased/008-create_class.t @@ -1,7 +1,7 @@ use strict; use warnings; use Mouse (); -use Test::More tests => 14; +use Test::More tests => 20; use Test::Exception; # error handling @@ -58,6 +58,7 @@ isa_ok Baz->new(), "FooBar"; is Baz->new()->foo, "yay"; is Baz->new()->dooo, "iiiit"; +my($anon_pkg1, $anon_pkg2); { my $meta = Mouse::Meta::Class->create_anon_class( superclasses => [ "Mouse::Object" ], @@ -65,10 +66,25 @@ is Baz->new()->dooo, "iiiit"; dooo => sub { "iiiit" }, } ); - isa_ok($meta, "Mouse::Meta::Class"); - like($meta->name, qr/Class::__ANON__::/); + $anon_pkg1 = $meta->name; + + isa_ok($meta, "Mouse::Meta::Class", 'create_anon_class'); + ok($meta->is_anon_class, 'is_anon_class'); is $meta->name->new->dooo(), "iiiit"; - my $anon2 = Mouse::Meta::Class->create_anon_class(); - like($anon2->name, qr/Class::__ANON__::/); + my $anon2 = Mouse::Meta::Class->create_anon_class(cache => 1); + $anon_pkg2 = $anon2->name; + + ok($anon2->is_anon_class); + + isnt $meta, $anon2; + isnt $meta->name, $anon2->name; } + +# all the stuff are removed? +ok !$anon_pkg1->isa('Mouse::Object'); +ok !$anon_pkg1->can('dooo'); +ok !$anon_pkg1->can('meta'); + +ok $anon_pkg2->can('meta'), 'cache => 1 makes it immortal'; +