Commit | Line | Data |
013b1897 |
1 | use strict; |
2 | use warnings; |
3 | |
efd3d14c |
4 | use Test::More tests => 48; |
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 { |
25 | Class::MOP::Class->construct_class_instance(); |
26 | } '... construct_class_instance requires an :package parameter'; |
27 | |
28 | dies_ok { |
29 | Class::MOP::Class->construct_class_instance(':package' => undef); |
30 | } '... construct_class_instance requires a defined :package parameter'; |
31 | |
32 | dies_ok { |
33 | Class::MOP::Class->construct_class_instance(':package' => ''); |
34 | } '... construct_class_instance requires a valid :package parameter'; |
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'; |
61 | |
62 | dies_ok { |
63 | Class::MOP::Class->clone_instance(1); |
64 | } '... can only clone instances'; |
65 | } |
66 | |
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(''); |
74 | } '... add_method dies as expected'; |
75 | |
76 | dies_ok { |
77 | Class::MOP::Class->add_method('foo' => 'foo'); |
78 | } '... add_method dies as expected'; |
79 | |
80 | dies_ok { |
81 | Class::MOP::Class->add_method('foo' => []); |
82 | } '... add_method dies as expected'; |
83 | } |
84 | |
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(''); |
92 | } '... alias_method dies as expected'; |
93 | |
94 | dies_ok { |
95 | Class::MOP::Class->alias_method('foo' => 'foo'); |
96 | } '... alias_method dies as expected'; |
97 | |
98 | dies_ok { |
99 | Class::MOP::Class->alias_method('foo' => []); |
100 | } '... alias_method dies as expected'; |
101 | } |
102 | |
103 | { |
104 | dies_ok { |
105 | Class::MOP::Class->has_method(); |
106 | } '... has_method dies as expected'; |
107 | |
108 | dies_ok { |
109 | Class::MOP::Class->has_method(''); |
110 | } '... has_method dies as expected'; |
111 | } |
112 | |
113 | { |
114 | dies_ok { |
115 | Class::MOP::Class->get_method(); |
116 | } '... get_method dies as expected'; |
117 | |
118 | dies_ok { |
119 | Class::MOP::Class->get_method(''); |
120 | } '... get_method dies as expected'; |
121 | } |
122 | |
123 | { |
124 | dies_ok { |
125 | Class::MOP::Class->remove_method(); |
126 | } '... remove_method dies as expected'; |
127 | |
128 | dies_ok { |
129 | Class::MOP::Class->remove_method(''); |
130 | } '... remove_method dies as expected'; |
131 | } |
132 | |
133 | { |
134 | dies_ok { |
135 | Class::MOP::Class->find_all_methods_by_name(); |
136 | } '... find_all_methods_by_name dies as expected'; |
137 | |
138 | dies_ok { |
139 | Class::MOP::Class->find_all_methods_by_name(''); |
140 | } '... find_all_methods_by_name dies as expected'; |
141 | } |
142 | |
143 | { |
144 | dies_ok { |
145 | Class::MOP::Class->add_attribute(bless {} => 'Foo'); |
146 | } '... add_attribute dies as expected'; |
147 | } |
148 | |
149 | |
150 | { |
151 | dies_ok { |
152 | Class::MOP::Class->has_attribute(); |
153 | } '... has_attribute dies as expected'; |
154 | |
155 | dies_ok { |
156 | Class::MOP::Class->has_attribute(''); |
157 | } '... has_attribute dies as expected'; |
158 | } |
159 | |
160 | { |
161 | dies_ok { |
162 | Class::MOP::Class->get_attribute(); |
163 | } '... get_attribute dies as expected'; |
164 | |
165 | dies_ok { |
166 | Class::MOP::Class->get_attribute(''); |
167 | } '... get_attribute dies as expected'; |
168 | } |
169 | |
170 | { |
171 | dies_ok { |
172 | Class::MOP::Class->remove_attribute(); |
173 | } '... remove_attribute dies as expected'; |
174 | |
175 | dies_ok { |
176 | Class::MOP::Class->remove_attribute(''); |
177 | } '... remove_attribute dies as expected'; |
178 | } |
179 | |
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(''); |
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 | |
193 | dies_ok { |
58d75218 |
194 | Class::MOP::Class->add_package_symbol('&foo'); |
195 | } '... add_package_symbol dies as expected'; |
22286063 |
196 | |
6d5355c3 |
197 | # throws_ok { |
58d75218 |
198 | # Class::MOP::Class->meta->add_package_symbol('@-'); |
6d5355c3 |
199 | # } qr/^Could not create package variable \(\@\-\) because/, |
58d75218 |
200 | # '... add_package_symbol dies as expected'; |
22286063 |
201 | } |
202 | |
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(''); |
210 | } '... has_package_symbol dies as expected'; |
22286063 |
211 | |
212 | dies_ok { |
58d75218 |
213 | Class::MOP::Class->has_package_symbol('foo'); |
214 | } '... has_package_symbol dies as expected'; |
22286063 |
215 | } |
216 | |
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(''); |
224 | } '... get_package_symbol dies as expected'; |
22286063 |
225 | |
226 | dies_ok { |
58d75218 |
227 | Class::MOP::Class->get_package_symbol('foo'); |
88dd563c |
228 | } '... get_package_symbol dies as expected'; |
22286063 |
229 | } |
230 | |
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(''); |
238 | } '... remove_package_symbol dies as expected'; |
22286063 |
239 | |
240 | dies_ok { |
58d75218 |
241 | Class::MOP::Class->remove_package_symbol('foo'); |
242 | } '... remove_package_symbol dies as expected'; |
22286063 |
243 | } |
244 | |