2 # This is automatically generated by author/import-moose-test.pl.
3 # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4 use t::lib::MooseCompat;
7 $TODO = q{Mouse is not yet completed};
17 use Mouse -traits => 'My::Role';
21 package SubClassUseBase;
22 use base qw/SomeClass/;
26 package SubSubClassUseBase;
29 $TODO = q{Mouse is not yet completed};
32 extends 'SubClassUseBase';
34 'Can extend non-Mouse class with parent class that is a Mouse class with a meta role';
38 ok( SubSubClassUseBase->meta->meta->can('does_role')
39 && SubSubClassUseBase->meta->meta->does_role('My::Role'),
40 'SubSubClassUseBase meta metaclass does the My::Role role' );
43 # Note, remove metaclasses of the 'use base' classes after each test,
44 # so that they have to be re-initialized - otherwise latter tests
45 # would not demonstrate the original issue.
46 Mouse::Util::remove_metaclass_by_name('SubClassUseBase');
54 package OtherSubClassUseBase;
55 use base 'OtherClass';
62 $TODO = q{Mouse is not yet completed};
65 extends qw( SubClassUseBase OtherSubClassUseBase );
67 'Can extend two non-Mouse classes with parents that are different Mouse metaclasses';
71 ok( MultiParent1->meta->meta->can('does_role')
72 && MultiParent1->meta->meta->does_role('My::Role'),
73 'MultiParent1 meta metaclass does the My::Role role' );
76 Mouse::Util::remove_metaclass_by_name($_)
77 for qw( SubClassUseBase OtherSubClassUseBase );
83 $TODO = q{Mouse is not yet completed};
86 extends qw( OtherSubClassUseBase SubClassUseBase );
88 'Can extend two non-Mouse classes with parents that are different Mouse metaclasses (reverse order)';
92 ok( MultiParent2->meta->meta->can('does_role')
93 && MultiParent2->meta->meta->does_role('My::Role'),
94 'MultiParent2 meta metaclass does the My::Role role' );
97 Mouse::Util::remove_metaclass_by_name($_)
98 for qw( SubClassUseBase OtherSubClassUseBase );
101 package MultiParent3;
104 $TODO = q{Mouse is not yet completed};
107 extends qw( OtherClass SubClassUseBase );
109 'Can extend one Mouse class and one non-Mouse class';
113 ok( MultiParent3->meta->meta->can('does_role')
114 && MultiParent3->meta->meta->does_role('My::Role'),
115 'MultiParent3 meta metaclass does the My::Role role' );
118 Mouse::Util::remove_metaclass_by_name($_)
119 for qw( SubClassUseBase OtherSubClassUseBase );
122 package MultiParent4;
125 $TODO = q{Mouse is not yet completed};
128 extends qw( SubClassUseBase OtherClass );
130 'Can extend one non-Mouse class and one Mouse class';
134 ok( MultiParent4->meta->meta->can('does_role')
135 && MultiParent4->meta->meta->does_role('My::Role'),
136 'MultiParent4 meta metaclass does the My::Role role' );
139 Mouse::Util::remove_metaclass_by_name($_)
140 for qw( SubClassUseBase OtherSubClassUseBase );
146 $TODO = q{Mouse is not yet completed};
149 extends 'MultiParent1';
151 'Can extend class that itself extends two non-Mouse classes with Mouse parents';
155 ok( MultiChild1->meta->meta->can('does_role')
156 && MultiChild1->meta->meta->does_role('My::Role'),
157 'MultiChild1 meta metaclass does the My::Role role' );
160 Mouse::Util::remove_metaclass_by_name($_)
161 for qw( SubClassUseBase OtherSubClassUseBase );
167 $TODO = q{Mouse is not yet completed};
170 extends 'MultiParent2';
172 'Can extend class that itself extends two non-Mouse classes with Mouse parents (reverse order)';
176 ok( MultiChild2->meta->meta->can('does_role')
177 && MultiChild2->meta->meta->does_role('My::Role'),
178 'MultiChild2 meta metaclass does the My::Role role' );
181 Mouse::Util::remove_metaclass_by_name($_)
182 for qw( SubClassUseBase OtherSubClassUseBase );
188 $TODO = q{Mouse is not yet completed};
191 extends 'MultiParent3';
193 'Can extend class that itself extends one Mouse and one non-Mouse parent';
197 ok( MultiChild3->meta->meta->can('does_role')
198 && MultiChild3->meta->meta->does_role('My::Role'),
199 'MultiChild3 meta metaclass does the My::Role role' );
202 Mouse::Util::remove_metaclass_by_name($_)
203 for qw( SubClassUseBase OtherSubClassUseBase );
209 $TODO = q{Mouse is not yet completed};
212 extends 'MultiParent4';
214 'Can extend class that itself extends one non-Mouse and one Mouse parent';
218 ok( MultiChild4->meta->meta->can('does_role')
219 && MultiChild4->meta->meta->does_role('My::Role'),
220 'MultiChild4 meta metaclass does the My::Role role' );
223 Mouse::Util::remove_metaclass_by_name($_)
224 for qw( SubClassUseBase OtherSubClassUseBase );