get_code_info test
Yuval Kogman [Mon, 28 Jan 2008 15:38:12 +0000 (15:38 +0000)]
t/082_get_code_info.t [new file with mode: 0644]

diff --git a/t/082_get_code_info.t b/t/082_get_code_info.t
new file mode 100644 (file)
index 0000000..1a10319
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More 'no_plan';
+
+BEGIN { use_ok("Class::MOP") }
+
+use Sub::Name qw(subname);
+
+sub code_name_is ($$$;$) {
+    my ( $code, $stash, $name, $desc ) = @_;
+    $desc ||= "sub name is ${stash}::$name";
+
+    is_deeply(
+        [ Class::MOP::get_code_info($code) ],
+        [ $stash, $name ],
+        $desc,
+    );
+}
+
+code_name_is( sub {}, main => "__ANON__" );
+
+code_name_is( subname("Foo::bar", sub {}), Foo => "bar" );
+
+code_name_is( subname("", sub {}), "main" => "" );
+
+require Class::MOP::Method;
+code_name_is( \&Class::MOP::Method::name, "Class::MOP::Method", "name" );
+