Commit | Line | Data |
---|---|---|
30229767 | 1 | use strict; |
2 | use warnings; | |
3 | ||
86a4d873 | 4 | use Test::More; |
30229767 | 5 | use Test::Exception; |
6 | ||
7 | use Carp; | |
8 | ||
9 | $SIG{__WARN__} = \&croak; | |
10 | ||
11 | { | |
12 | package Foo; | |
30229767 | 13 | |
e8f79d90 | 14 | ::throws_ok{ |
30229767 | 15 | Class::MOP::in_global_destruction(); |
e8f79d90 | 16 | } qr/\b deprecated \b/xmsi, |
17 | 'Class::MOP::in_global_destruction is deprecated'; | |
30229767 | 18 | } |
19 | ||
20 | { | |
21 | package Bar; | |
30229767 | 22 | |
1b948345 | 23 | use Class::MOP::Deprecated -api_version => 0.93; |
30229767 | 24 | |
e8f79d90 | 25 | ::throws_ok{ |
30229767 | 26 | Class::MOP::in_global_destruction(); |
e8f79d90 | 27 | } qr/\b deprecated \b/xmsi, |
28 | 'Class::MOP::in_global_destruction is deprecated with 0.93 compatibility'; | |
30229767 | 29 | } |
30 | ||
31 | { | |
32 | package Baz; | |
30229767 | 33 | |
1b948345 | 34 | use Class::MOP::Deprecated -api_version => 0.92; |
30229767 | 35 | |
e8f79d90 | 36 | ::lives_ok{ |
30229767 | 37 | Class::MOP::in_global_destruction(); |
e8f79d90 | 38 | } |
39 | 'Class::MOP::in_global_destruction is not deprecated with 0.92 compatibility'; | |
30229767 | 40 | } |
41 | ||
30229767 | 42 | { |
b1aaf0dc | 43 | package Foo2; |
44 | ||
45 | use metaclass; | |
46 | ||
47 | ::throws_ok{ Foo2->meta->get_attribute_map } | |
48 | qr/\Qget_attribute_map method has been deprecated/, | |
49 | 'get_attribute_map is deprecated'; | |
50 | } | |
51 | ||
52 | { | |
b409c969 | 53 | package Quux; |
54 | ||
1b948345 | 55 | use Class::MOP::Deprecated -api_version => 0.92; |
b409c969 | 56 | use Scalar::Util qw( blessed ); |
57 | ||
58 | use metaclass; | |
59 | ||
60 | sub foo {42} | |
61 | ||
62 | Quux->meta->add_method( bar => sub {84} ); | |
63 | ||
64 | my $map = Quux->meta->get_method_map; | |
65 | my @method_objects = grep { blessed($_) } values %{$map}; | |
66 | ||
e8f79d90 | 67 | ::is( |
68 | scalar @method_objects, 3, | |
69 | 'get_method_map still returns all values as method object' | |
70 | ); | |
71 | ::is_deeply( | |
72 | [ sort keys %{$map} ], | |
73 | [qw( bar foo meta )], | |
74 | 'get_method_map returns expected methods' | |
75 | ); | |
b409c969 | 76 | } |
86a4d873 | 77 | |
78 | done_testing; |