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