remove unneeded shebang
[p5sagit/Devel-Declare.git] / t / method-installer-redefine.t
CommitLineData
62067fd9 1use strict;
2use warnings;
4d09d73b 3use Test::More tests => 5;
62067fd9 4use Devel::Declare::MethodInstaller::Simple;
5
6BEGIN {
7 Devel::Declare::MethodInstaller::Simple->install_methodhandler(
8 name => 'method',
9 into => 'main',
10 );
11}
12
13BEGIN {
14 no warnings 'redefine';
15 Devel::Declare::MethodInstaller::Simple->install_methodhandler(
16 name => 'method_quiet',
17 into => 'main',
18 );
19}
20
21ok(!main->can('foo'), 'foo() not installed yet');
22
23method foo {
24 $_[0]->method
25}
26
62067fd9 27ok(main->can('foo'), 'foo() installed at runtime');
28
4d09d73b 29my @warnings;
30$SIG{__WARN__} = sub { push @warnings, $_[0] };
31
32@warnings = ();
33method foo {
34$_[0]->method;
35}
36is scalar(@warnings), 1;
37like $warnings[0], qr/redefined/;
38
39@warnings = ();
40method_quiet foo {
41$_[0]->method;
42}
43is_deeply \@warnings, [];