One last tweak to make sure our Sub::Name-using tests _do_ run when we
[gitmo/Class-MOP.git] / t / 082_get_code_info.t
CommitLineData
423ea917 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
e896822d 6use Test::More;
7
8BEGIN {
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
17BEGIN { use_ok("Class::MOP") }
18
423ea917 19
20sub 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
31code_name_is( sub {}, main => "__ANON__" );
32
33code_name_is( subname("Foo::bar", sub {}), Foo => "bar" );
34
35code_name_is( subname("", sub {}), "main" => "" );
36
37require Class::MOP::Method;
38code_name_is( \&Class::MOP::Method::name, "Class::MOP::Method", "name" );
39