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