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