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