fix tests for the deprecation stuff
[gitmo/Moose.git] / t / cmop / class_errors_and_edge_cases.t
CommitLineData
38bf2a25 1use strict;
2use warnings;
3
4use Test::More;
5use Test::Fatal;
6
7use Class::MOP;
8
9{
10 isnt( exception {
11 Class::MOP::Class->initialize();
12 }, undef, '... initialize requires a name parameter' );
13
14 isnt( exception {
15 Class::MOP::Class->initialize('');
16 }, undef, '... initialize requires a name valid parameter' );
17
18 isnt( exception {
19 Class::MOP::Class->initialize(bless {} => 'Foo');
20 }, undef, '... initialize requires an unblessed parameter' );
21}
22
23{
24 isnt( exception {
25 Class::MOP::Class->_construct_class_instance();
26 }, undef, '... _construct_class_instance requires an :package parameter' );
27
28 isnt( exception {
29 Class::MOP::Class->_construct_class_instance(':package' => undef);
30 }, undef, '... _construct_class_instance requires a defined :package parameter' );
31
32 isnt( exception {
33 Class::MOP::Class->_construct_class_instance(':package' => '');
34 }, undef, '... _construct_class_instance requires a valid :package parameter' );
35}
36
37
38{
39 isnt( exception {
40 Class::MOP::Class->create();
41 }, undef, '... create requires an package_name parameter' );
42
43 isnt( exception {
44 Class::MOP::Class->create(undef);
45 }, undef, '... create requires a defined package_name parameter' );
46
47 isnt( exception {
48 Class::MOP::Class->create('');
49 }, undef, '... create requires a valid package_name parameter' );
50
51 like( exception {
52 Class::MOP::Class->create('+++');
53 }, qr/^creation of \+\+\+ failed/, '... create requires a valid package_name parameter' );
54
55}
56
57{
58 isnt( exception {
59 Class::MOP::Class->clone_object(1);
60 }, undef, '... can only clone instances' );
61}
62
63{
64 isnt( exception {
65 Class::MOP::Class->add_method();
66 }, undef, '... add_method dies as expected' );
67
68 isnt( exception {
69 Class::MOP::Class->add_method('');
70 }, undef, '... add_method dies as expected' );
71
72 isnt( exception {
73 Class::MOP::Class->add_method('foo' => 'foo');
74 }, undef, '... add_method dies as expected' );
75
76 isnt( exception {
77 Class::MOP::Class->add_method('foo' => []);
78 }, undef, '... add_method dies as expected' );
79}
80
81{
82 isnt( exception {
83 Class::MOP::Class->has_method();
84 }, undef, '... has_method dies as expected' );
85
86 isnt( exception {
87 Class::MOP::Class->has_method('');
88 }, undef, '... has_method dies as expected' );
89}
90
91{
92 isnt( exception {
93 Class::MOP::Class->get_method();
94 }, undef, '... get_method dies as expected' );
95
96 isnt( exception {
97 Class::MOP::Class->get_method('');
98 }, undef, '... get_method dies as expected' );
99}
100
101{
102 isnt( exception {
103 Class::MOP::Class->remove_method();
104 }, undef, '... remove_method dies as expected' );
105
106 isnt( exception {
107 Class::MOP::Class->remove_method('');
108 }, undef, '... remove_method dies as expected' );
109}
110
111{
112 isnt( exception {
113 Class::MOP::Class->find_all_methods_by_name();
114 }, undef, '... find_all_methods_by_name dies as expected' );
115
116 isnt( exception {
117 Class::MOP::Class->find_all_methods_by_name('');
118 }, undef, '... find_all_methods_by_name dies as expected' );
119}
120
121{
122 isnt( exception {
123 Class::MOP::Class->add_attribute(bless {} => 'Foo');
124 }, undef, '... add_attribute dies as expected' );
125}
126
127
128{
129 isnt( exception {
130 Class::MOP::Class->has_attribute();
131 }, undef, '... has_attribute dies as expected' );
132
133 isnt( exception {
134 Class::MOP::Class->has_attribute('');
135 }, undef, '... has_attribute dies as expected' );
136}
137
138{
139 isnt( exception {
140 Class::MOP::Class->get_attribute();
141 }, undef, '... get_attribute dies as expected' );
142
143 isnt( exception {
144 Class::MOP::Class->get_attribute('');
145 }, undef, '... get_attribute dies as expected' );
146}
147
148{
149 isnt( exception {
150 Class::MOP::Class->remove_attribute();
151 }, undef, '... remove_attribute dies as expected' );
152
153 isnt( exception {
154 Class::MOP::Class->remove_attribute('');
155 }, undef, '... remove_attribute dies as expected' );
156}
157
158{
159 isnt( exception {
160 Class::MOP::Class->add_package_symbol();
161 }, undef, '... add_package_symbol dies as expected' );
162
163 isnt( exception {
164 Class::MOP::Class->add_package_symbol('');
165 }, undef, '... add_package_symbol dies as expected' );
166
167 isnt( exception {
168 Class::MOP::Class->add_package_symbol('foo');
169 }, undef, '... add_package_symbol dies as expected' );
170
171 isnt( exception {
172 Class::MOP::Class->add_package_symbol('&foo');
173 }, undef, '... add_package_symbol dies as expected' );
174
175# throws_ok {
176# Class::MOP::Class->meta->add_package_symbol('@-');
177# } qr/^Could not create package variable \(\@\-\) because/,
178# '... add_package_symbol dies as expected';
179}
180
181{
182 isnt( exception {
183 Class::MOP::Class->has_package_symbol();
184 }, undef, '... has_package_symbol dies as expected' );
185
186 isnt( exception {
187 Class::MOP::Class->has_package_symbol('');
188 }, undef, '... has_package_symbol dies as expected' );
189
190 isnt( exception {
191 Class::MOP::Class->has_package_symbol('foo');
192 }, undef, '... has_package_symbol dies as expected' );
193}
194
195{
196 isnt( exception {
197 Class::MOP::Class->get_package_symbol();
198 }, undef, '... get_package_symbol dies as expected' );
199
200 isnt( exception {
201 Class::MOP::Class->get_package_symbol('');
202 }, undef, '... get_package_symbol dies as expected' );
203
204 isnt( exception {
205 Class::MOP::Class->get_package_symbol('foo');
206 }, undef, '... get_package_symbol dies as expected' );
207}
208
209{
210 isnt( exception {
211 Class::MOP::Class->remove_package_symbol();
212 }, undef, '... remove_package_symbol dies as expected' );
213
214 isnt( exception {
215 Class::MOP::Class->remove_package_symbol('');
216 }, undef, '... remove_package_symbol dies as expected' );
217
218 isnt( exception {
219 Class::MOP::Class->remove_package_symbol('foo');
220 }, undef, '... remove_package_symbol dies as expected' );
221}
222
223done_testing;