Commit | Line | Data |
423ea917 |
1 | use strict; |
2 | use warnings; |
3 | |
e896822d |
4 | use Test::More; |
5 | |
6 | BEGIN { |
351e5029 |
7 | $^P &= ~0x200; # Don't munger anonymous sub names |
2621d59f |
8 | if ( eval 'use Sub::Name qw(subname); 1;' ) { |
e896822d |
9 | plan tests => 5; |
10 | } |
11 | else { |
12 | plan skip_all => 'These tests require Sub::Name'; |
13 | } |
14 | } |
423ea917 |
15 | |
16 | BEGIN { use_ok("Class::MOP") } |
17 | |
423ea917 |
18 | |
19 | sub code_name_is ($$$;$) { |
20 | my ( $code, $stash, $name, $desc ) = @_; |
21 | $desc ||= "sub name is ${stash}::$name"; |
22 | |
23 | is_deeply( |
24 | [ Class::MOP::get_code_info($code) ], |
25 | [ $stash, $name ], |
26 | $desc, |
27 | ); |
28 | } |
29 | |
30 | code_name_is( sub {}, main => "__ANON__" ); |
31 | |
32 | code_name_is( subname("Foo::bar", sub {}), Foo => "bar" ); |
33 | |
34 | code_name_is( subname("", sub {}), "main" => "" ); |
35 | |
36 | require Class::MOP::Method; |
37 | code_name_is( \&Class::MOP::Method::name, "Class::MOP::Method", "name" ); |
38 | |