Rename non-portable filenames
[gitmo/Mouse.git] / t-failing / 060_compat / 004_entimwm
CommitLineData
fde8e43f 1use strict;
2# This is automatically generated by author/import-moose-test.pl.
3# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4use t::lib::MooseCompat;
5use warnings;
6use Test::More;
7$TODO = q{Mouse is not yet completed};
8use Mouse::Meta ();
9
10{
11 package My::Role;
12 use Mouse::Role;
13}
14
15{
16 package SomeClass;
17 use Mouse -traits => 'My::Role';
18}
19
20{
21 package SubClassUseBase;
22 use base qw/SomeClass/;
23}
24
25{
26 package SubSubClassUseBase;
27 use Mouse;
28 use Test::More;
29$TODO = q{Mouse is not yet completed};
30 use Test::Exception;
31 lives_ok {
32 extends 'SubClassUseBase';
33 }
34 'Can extend non-Mouse class with parent class that is a Mouse class with a meta role';
35}
36
37{
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' );
41}
42
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.
46Mouse::Util::remove_metaclass_by_name('SubClassUseBase');
47
48{
49 package OtherClass;
50 use Mouse;
51}
52
53{
54 package OtherSubClassUseBase;
55 use base 'OtherClass';
56}
57
58{
59 package MultiParent1;
60 use Mouse;
61 use Test::More;
62$TODO = q{Mouse is not yet completed};
63 use Test::Exception;
64 lives_ok {
65 extends qw( SubClassUseBase OtherSubClassUseBase );
66 }
67 'Can extend two non-Mouse classes with parents that are different Mouse metaclasses';
68}
69
70{
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' );
74}
75
76Mouse::Util::remove_metaclass_by_name($_)
77 for qw( SubClassUseBase OtherSubClassUseBase );
78
79{
80 package MultiParent2;
81 use Mouse;
82 use Test::More;
83$TODO = q{Mouse is not yet completed};
84 use Test::Exception;
85 lives_ok {
86 extends qw( OtherSubClassUseBase SubClassUseBase );
87 }
88 'Can extend two non-Mouse classes with parents that are different Mouse metaclasses (reverse order)';
89}
90
91{
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' );
95}
96
97Mouse::Util::remove_metaclass_by_name($_)
98 for qw( SubClassUseBase OtherSubClassUseBase );
99
100{
101 package MultiParent3;
102 use Mouse;
103 use Test::More;
104$TODO = q{Mouse is not yet completed};
105 use Test::Exception;
106 lives_ok {
107 extends qw( OtherClass SubClassUseBase );
108 }
109 'Can extend one Mouse class and one non-Mouse class';
110}
111
112{
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' );
116}
117
118Mouse::Util::remove_metaclass_by_name($_)
119 for qw( SubClassUseBase OtherSubClassUseBase );
120
121{
122 package MultiParent4;
123 use Mouse;
124 use Test::More;
125$TODO = q{Mouse is not yet completed};
126 use Test::Exception;
127 lives_ok {
128 extends qw( SubClassUseBase OtherClass );
129 }
130 'Can extend one non-Mouse class and one Mouse class';
131}
132
133{
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' );
137}
138
139Mouse::Util::remove_metaclass_by_name($_)
140 for qw( SubClassUseBase OtherSubClassUseBase );
141
142{
143 package MultiChild1;
144 use Mouse;
145 use Test::More;
146$TODO = q{Mouse is not yet completed};
147 use Test::Exception;
148 lives_ok {
149 extends 'MultiParent1';
150 }
151 'Can extend class that itself extends two non-Mouse classes with Mouse parents';
152}
153
154{
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' );
158}
159
160Mouse::Util::remove_metaclass_by_name($_)
161 for qw( SubClassUseBase OtherSubClassUseBase );
162
163{
164 package MultiChild2;
165 use Mouse;
166 use Test::More;
167$TODO = q{Mouse is not yet completed};
168 use Test::Exception;
169 lives_ok {
170 extends 'MultiParent2';
171 }
172 'Can extend class that itself extends two non-Mouse classes with Mouse parents (reverse order)';
173}
174
175{
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' );
179}
180
181Mouse::Util::remove_metaclass_by_name($_)
182 for qw( SubClassUseBase OtherSubClassUseBase );
183
184{
185 package MultiChild3;
186 use Mouse;
187 use Test::More;
188$TODO = q{Mouse is not yet completed};
189 use Test::Exception;
190 lives_ok {
191 extends 'MultiParent3';
192 }
193 'Can extend class that itself extends one Mouse and one non-Mouse parent';
194}
195
196{
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' );
200}
201
202Mouse::Util::remove_metaclass_by_name($_)
203 for qw( SubClassUseBase OtherSubClassUseBase );
204
205{
206 package MultiChild4;
207 use Mouse;
208 use Test::More;
209$TODO = q{Mouse is not yet completed};
210 use Test::Exception;
211 lives_ok {
212 extends 'MultiParent4';
213 }
214 'Can extend class that itself extends one non-Mouse and one Mouse parent';
215}
216
217{
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' );
221}
222
223Mouse::Util::remove_metaclass_by_name($_)
224 for qw( SubClassUseBase OtherSubClassUseBase );
225
226done_testing;