Revert "convert all uses of Test::Exception to Test::Fatal."
[gitmo/Class-MOP.git] / t / 500_deprecated.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5 use Test::Exception;
6
7 use Carp;
8
9 $SIG{__WARN__} = \&croak;
10
11 {
12     package Foo;
13
14     ::throws_ok{
15         Class::MOP::in_global_destruction();
16         } qr/\b deprecated \b/xmsi,
17         'Class::MOP::in_global_destruction is deprecated';
18 }
19
20 {
21     package Bar;
22
23     use Class::MOP::Deprecated -api_version => 0.93;
24
25     ::throws_ok{
26         Class::MOP::in_global_destruction();
27         } qr/\b deprecated \b/xmsi,
28         'Class::MOP::in_global_destruction is deprecated with 0.93 compatibility';
29 }
30
31 {
32     package Baz;
33
34     use Class::MOP::Deprecated -api_version => 0.92;
35
36     ::lives_ok{
37         Class::MOP::in_global_destruction();
38         }
39         'Class::MOP::in_global_destruction is not deprecated with 0.92 compatibility';
40 }
41
42 {
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 {
53     package Quux;
54
55     use Class::MOP::Deprecated -api_version => 0.92;
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
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     );
76 }
77
78 done_testing;