make this a bit more extensible, for moose's benefit
[gitmo/Class-MOP.git] / t / 500_deprecated.t
CommitLineData
30229767 1use strict;
2use warnings;
3
86a4d873 4use Test::More;
30229767 5use Test::Exception;
6
7use 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
78done_testing;