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