with 'FooRole', 'BarRole';
}
+{
+ package PlainJane;
+ sub new { return bless {}, __PACKAGE__; }
+}
+
my $foo_class_meta = FooClass->meta;
isa_ok( $foo_class_meta, 'Moose::Meta::Class' );
is( $foo->bar, $foo2, '... got the right value for bar now' );
}
+{
+ {
+ package MRole;
+ use Moose::Role;
+ sub meth { }
+ }
+
+ {
+ package MRole2;
+ use Moose::Role;
+ sub meth2 { }
+ }
+
+ {
+ use Moose::Meta::Class;
+ use Moose::Object;
+ use Moose::Util qw(apply_all_roles);
+
+ my $class = Moose::Meta::Class->create( 'Class' => (
+ superclasses => [ 'Moose::Object' ],
+ ));
+
+ apply_all_roles($class, MRole->meta, MRole2->meta);
+
+ ok(Class->can('meth'), "can meth");
+ ok(Class->can('meth2'), "can meth2");
+ }
+}
+
+{
+ ok(!Moose::Util::find_meta('PlainJane'), 'not initialized');
+ Moose::Util::apply_all_roles('PlainJane', 'BarRole');
+ ok(Moose::Util::find_meta('PlainJane'), 'initialized');
+ ok(Moose::Util::find_meta('PlainJane')->does_role('BarRole'), 'does BarRole');
+ my $pj = PlainJane->new();
+ ok($pj->can('woot'), 'can woot');
+}
+
done_testing;