%PDF- %PDF-
Direktori : /usr/share/doc/perl-Moose-2.1005/t/metaclasses/ |
Current File : //usr/share/doc/perl-Moose-2.1005/t/metaclasses/meta_name.t |
#!/usr/bin/perl use strict; use warnings; use Test::More; { # so we don't pick up stuff from Moose::Object package Base; sub foo { } # touch it so that 'extends' doesn't try to load it } { package Foo; use Moose; extends 'Base'; no Moose; } can_ok('Foo', 'meta'); is(Foo->meta, Class::MOP::class_of('Foo')); isa_ok(Foo->meta->get_method('meta'), 'Moose::Meta::Method::Meta'); { package Bar; use Moose -meta_name => 'bar_meta'; extends 'Base'; no Moose; } ok(!Bar->can('meta')); can_ok('Bar', 'bar_meta'); is(Bar->bar_meta, Class::MOP::class_of('Bar')); isa_ok(Bar->bar_meta->get_method('bar_meta'), 'Moose::Meta::Method::Meta'); { package Baz; use Moose -meta_name => undef; extends 'Base'; no Moose; } ok(!Baz->can('meta')); my $universal_method_count = scalar Class::MOP::class_of('UNIVERSAL')->get_all_methods; # 1 because of the dummy method we installed in Base is( ( scalar Class::MOP::class_of('Baz')->get_all_methods ) - $universal_method_count, 1 ); done_testing;