6 use Test::More tests => 12;
9 use_ok('Moose::Policy');
13 package My::Plain::Attribute;
15 extends 'Moose::Meta::Attribute';
18 package My::Bar::Attribute;
20 extends 'Moose::Meta::Attribute';
23 package My::Plain::Class;
25 extends 'Moose::Meta::Class';
28 package My::Bar::Class;
30 extends 'Moose::Meta::Class';
33 package My::Moose::Policy;
34 # because writing subs is hard
37 qw(attribute_metaclass Attribute),
39 # qw(method_metaclass Method),
40 # qw(instance_metaclass Instance),
42 foreach my $subname (keys(%pkg_map)) {
43 my $pkg = $pkg_map{$subname};
47 return('My::Bar::' . $pkg)
48 if($caller =~ m/^Bar(?:::|$)/);
49 return 'My::Plain::' . $pkg;
57 use Moose::Policy 'My::Moose::Policy';
61 use Moose::Policy 'My::Moose::Policy';
65 use Moose::Policy 'My::Moose::Policy';
69 use Moose::Policy 'My::Moose::Policy';
72 isa_ok(Foo->meta, 'Moose::Meta::Class');
73 is(Foo->meta->attribute_metaclass, 'My::Plain::Attribute',
74 '... got our custom attr metaclass');
76 isa_ok(Bar->meta, 'Moose::Meta::Class');
77 isa_ok(Bar->meta, 'My::Bar::Class');
78 is(Bar->meta->attribute_metaclass, 'My::Bar::Attribute',
79 '... got our custom attr metaclass');
81 isa_ok(Bars->meta, 'Moose::Meta::Class');
82 isa_ok(Bars->meta, 'My::Plain::Class');
83 is(Bars->meta->attribute_metaclass, 'My::Plain::Attribute',
84 '... got our custom attr metaclass');
86 isa_ok(Bar::None->meta, 'Moose::Meta::Class');
87 isa_ok(Bar::None->meta, 'My::Bar::Class');
88 is(Bar::None->meta->attribute_metaclass, 'My::Bar::Attribute',
89 '... got our custom attr metaclass');