Commit | Line | Data |
62067fd9 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More tests => 4; |
4 | use Test::Warn; |
5 | use Devel::Declare::MethodInstaller::Simple; |
6 | |
7 | BEGIN { |
8 | Devel::Declare::MethodInstaller::Simple->install_methodhandler( |
9 | name => 'method', |
10 | into => 'main', |
11 | ); |
12 | } |
13 | |
14 | BEGIN { |
15 | no warnings 'redefine'; |
16 | Devel::Declare::MethodInstaller::Simple->install_methodhandler( |
17 | name => 'method_quiet', |
18 | into => 'main', |
19 | ); |
20 | } |
21 | |
22 | ok(!main->can('foo'), 'foo() not installed yet'); |
23 | |
24 | method foo { |
25 | $_[0]->method |
26 | } |
27 | |
28 | use Test::Warn; |
29 | |
30 | ok(main->can('foo'), 'foo() installed at runtime'); |
31 | |
32 | warnings_like { |
33 | method foo { |
34 | $_[0]->method; |
35 | } |
36 | } qr/redefined/; |
37 | |
38 | warnings_are { |
39 | method_quiet foo { |
40 | $_[0]->method; |
41 | } |
42 | } [], 'no warnings'; |