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