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