oops, fix this test
[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
54c134d4 51 isnt( exception {
38bf2a25 52 Class::MOP::Class->create('+++');
a77d943b 53 }, qr/^\+\+\+ is not a module name/, '... create requires a valid package_name parameter' );
38bf2a25 54}
55
56{
57 isnt( exception {
58 Class::MOP::Class->clone_object(1);
59 }, undef, '... can only clone instances' );
60}
61
62{
63 isnt( exception {
64 Class::MOP::Class->add_method();
65 }, undef, '... add_method dies as expected' );
66
67 isnt( exception {
68 Class::MOP::Class->add_method('');
69 }, undef, '... add_method dies as expected' );
70
71 isnt( exception {
72 Class::MOP::Class->add_method('foo' => 'foo');
73 }, undef, '... add_method dies as expected' );
74
75 isnt( exception {
76 Class::MOP::Class->add_method('foo' => []);
77 }, undef, '... add_method dies as expected' );
78}
79
80{
81 isnt( exception {
82 Class::MOP::Class->has_method();
83 }, undef, '... has_method dies as expected' );
84
85 isnt( exception {
86 Class::MOP::Class->has_method('');
87 }, undef, '... has_method dies as expected' );
88}
89
90{
91 isnt( exception {
92 Class::MOP::Class->get_method();
93 }, undef, '... get_method dies as expected' );
94
95 isnt( exception {
96 Class::MOP::Class->get_method('');
97 }, undef, '... get_method dies as expected' );
98}
99
100{
101 isnt( exception {
102 Class::MOP::Class->remove_method();
103 }, undef, '... remove_method dies as expected' );
104
105 isnt( exception {
106 Class::MOP::Class->remove_method('');
107 }, undef, '... remove_method dies as expected' );
108}
109
110{
111 isnt( exception {
112 Class::MOP::Class->find_all_methods_by_name();
113 }, undef, '... find_all_methods_by_name dies as expected' );
114
115 isnt( exception {
116 Class::MOP::Class->find_all_methods_by_name('');
117 }, undef, '... find_all_methods_by_name dies as expected' );
118}
119
120{
121 isnt( exception {
122 Class::MOP::Class->add_attribute(bless {} => 'Foo');
123 }, undef, '... add_attribute dies as expected' );
124}
125
126
127{
128 isnt( exception {
129 Class::MOP::Class->has_attribute();
130 }, undef, '... has_attribute dies as expected' );
131
132 isnt( exception {
133 Class::MOP::Class->has_attribute('');
134 }, undef, '... has_attribute dies as expected' );
135}
136
137{
138 isnt( exception {
139 Class::MOP::Class->get_attribute();
140 }, undef, '... get_attribute dies as expected' );
141
142 isnt( exception {
143 Class::MOP::Class->get_attribute('');
144 }, undef, '... get_attribute dies as expected' );
145}
146
147{
148 isnt( exception {
149 Class::MOP::Class->remove_attribute();
150 }, undef, '... remove_attribute dies as expected' );
151
152 isnt( exception {
153 Class::MOP::Class->remove_attribute('');
154 }, undef, '... remove_attribute dies as expected' );
155}
156
157{
158 isnt( exception {
159 Class::MOP::Class->add_package_symbol();
160 }, undef, '... add_package_symbol dies as expected' );
161
162 isnt( exception {
163 Class::MOP::Class->add_package_symbol('');
164 }, undef, '... add_package_symbol dies as expected' );
165
166 isnt( exception {
167 Class::MOP::Class->add_package_symbol('foo');
168 }, undef, '... add_package_symbol dies as expected' );
169
170 isnt( exception {
171 Class::MOP::Class->add_package_symbol('&foo');
172 }, undef, '... add_package_symbol dies as expected' );
173
174# throws_ok {
175# Class::MOP::Class->meta->add_package_symbol('@-');
176# } qr/^Could not create package variable \(\@\-\) because/,
177# '... add_package_symbol dies as expected';
178}
179
180{
181 isnt( exception {
182 Class::MOP::Class->has_package_symbol();
183 }, undef, '... has_package_symbol dies as expected' );
184
185 isnt( exception {
186 Class::MOP::Class->has_package_symbol('');
187 }, undef, '... has_package_symbol dies as expected' );
188
189 isnt( exception {
190 Class::MOP::Class->has_package_symbol('foo');
191 }, undef, '... has_package_symbol dies as expected' );
192}
193
194{
195 isnt( exception {
196 Class::MOP::Class->get_package_symbol();
197 }, undef, '... get_package_symbol dies as expected' );
198
199 isnt( exception {
200 Class::MOP::Class->get_package_symbol('');
201 }, undef, '... get_package_symbol dies as expected' );
202
203 isnt( exception {
204 Class::MOP::Class->get_package_symbol('foo');
205 }, undef, '... get_package_symbol dies as expected' );
206}
207
208{
209 isnt( exception {
210 Class::MOP::Class->remove_package_symbol();
211 }, undef, '... remove_package_symbol dies as expected' );
212
213 isnt( exception {
214 Class::MOP::Class->remove_package_symbol('');
215 }, undef, '... remove_package_symbol dies as expected' );
216
217 isnt( exception {
218 Class::MOP::Class->remove_package_symbol('foo');
219 }, undef, '... remove_package_symbol dies as expected' );
220}
221
222done_testing;