diff options
Diffstat (limited to 't/cmop/Perl6Attribute_test.t')
-rw-r--r-- | t/cmop/Perl6Attribute_test.t | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/t/cmop/Perl6Attribute_test.t b/t/cmop/Perl6Attribute_test.t new file mode 100644 index 0000000..9b3d73f --- /dev/null +++ b/t/cmop/Perl6Attribute_test.t @@ -0,0 +1,41 @@ +use strict; +use warnings; + +use Test::More; + +use Class::MOP; + +use lib 't/cmop/lib'; +use Perl6Attribute; + +{ + package Foo; + + use metaclass; + + Foo->meta->add_attribute(Perl6Attribute->new('$.foo')); + Foo->meta->add_attribute(Perl6Attribute->new('@.bar')); + Foo->meta->add_attribute(Perl6Attribute->new('%.baz')); + + sub new { + my $class = shift; + $class->meta->new_object(@_); + } +} + +my $foo = Foo->new(); +isa_ok($foo, 'Foo'); + +can_ok($foo, 'foo'); +can_ok($foo, 'bar'); +can_ok($foo, 'baz'); + +is($foo->foo, undef, '... Foo.foo == undef'); + +$foo->foo(42); +is($foo->foo, 42, '... Foo.foo == 42'); + +is_deeply($foo->bar, [], '... Foo.bar == []'); +is_deeply($foo->baz, {}, '... Foo.baz == {}'); + +done_testing; |