Add tests for magical vars and hash iterators
[gitmo/Mouse.git] / t / 001_mouse / 062-package-symbol.t
CommitLineData
b4d1723e 1#!perl
2use strict;
3use warnings;
4
5use Test::More tests => 17;
6
7{
8 package Foo;
9 use Mouse;
10
11 sub code { 42 }
12
13 our $scalar = 'bar';
14
15 our %hash = (a => 'b');
16
17 our @array = ('foo');
18}
19
20my $meta = Foo->meta;
21
22foreach my $sym(qw(&code $scalar %hash @array *code *scalar *hash *array)){
23 ok $meta->has_package_symbol($sym), "has_package_symbol('$sym')";
24}
25
26ok !$meta->has_package_symbol('$hogehoge');
27ok !$meta->has_package_symbol('%array');
28
29is $meta->get_package_symbol('&code'), \&Foo::code;
30is $meta->get_package_symbol('$scalar'), \$Foo::scalar;
31is $meta->get_package_symbol('%hash'), \%Foo::hash;
32is $meta->get_package_symbol('@array'), \@Foo::array;
33is $meta->get_package_symbol('*code'), \*Foo::code;
34
35is $meta->get_package_symbol('$hogehoge'), undef;
36is $meta->get_package_symbol('%array'), undef;
37