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