6 use Test::More tests => 11;
9 use_ok('Moose::Meta::Class');
11 use_ok('Moose::Role');
20 sub foo_role_applied { 1 }
24 sub bar_role_applied { 1 }
27 # try without caching first
30 my $class_and_foo_1 = Moose::Meta::Class->create_anon_class(
31 superclasses => ['Class'],
35 my $class_and_foo_2 = Moose::Meta::Class->create_anon_class(
36 superclasses => ['Class'],
40 isnt $class_and_foo_1->name, $class_and_foo_2->name,
41 'creating the same class twice without caching results in 2 classes';
43 map { ok $_->name->foo_role_applied } ($class_and_foo_1, $class_and_foo_2);
46 # now try with caching
49 my $class_and_foo_1 = Moose::Meta::Class->create_anon_class(
50 superclasses => ['Class'],
55 my $class_and_foo_2 = Moose::Meta::Class->create_anon_class(
56 superclasses => ['Class'],
61 is $class_and_foo_1->name, $class_and_foo_2->name,
62 'with cache, the same class is the same class';
64 map { ok $_->name->foo_role_applied } ($class_and_foo_1, $class_and_foo_2);
66 my $class_and_bar = Moose::Meta::Class->create_anon_class(
67 superclasses => ['Class'],
72 isnt $class_and_foo_1->name, $class_and_bar,
73 'class_and_foo and class_and_bar are different';
75 ok $class_and_bar->name->bar_role_applied;