diff options
Diffstat (limited to 't/32-moosex-insideout.t')
-rw-r--r-- | t/32-moosex-insideout.t | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/t/32-moosex-insideout.t b/t/32-moosex-insideout.t index 128c437..ae31359 100644 --- a/t/32-moosex-insideout.t +++ b/t/32-moosex-insideout.t @@ -2,6 +2,7 @@ use strict; use warnings; use Test::More; +use Test::Moose; BEGIN { eval "use MooseX::InsideOut 0.100 ()"; plan skip_all => "MooseX::InsideOut is required for this test" if $@; @@ -63,23 +64,15 @@ package Foo::Moose::Sub; use base 'Foo::Moose'; package main; -my $foo = Foo::Moose->new('FOO', bar => 'BAR'); -is($foo->foo, 'FOO', 'base class accessor works'); -is($foo->bar, 'BAR', 'subclass accessor works'); -$foo->foo('OOF'); -$foo->bar('RAB'); -is($foo->foo, 'OOF', 'base class accessor works (setting)'); -is($foo->bar, 'RAB', 'subclass accessor works (setting)'); -my $sub_foo = eval { Foo::Moose::Sub->new(FOO => bar => 'AHOY') }; -is(eval { $sub_foo->bar }, 'AHOY', 'subclass constructor works'); -Foo::Moose->meta->make_immutable; -$foo = Foo::Moose->new('FOO', bar => 'BAR'); -is($foo->foo, 'FOO', 'base class accessor works (immutable)'); -is($foo->bar, 'BAR', 'subclass accessor works (immutable)'); -$foo->foo('OOF'); -$foo->bar('RAB'); -is($foo->foo, 'OOF', 'base class accessor works (setting) (immutable)'); -is($foo->bar, 'RAB', 'subclass accessor works (setting) (immutable)'); -my $sub_foo_immutable = eval { Foo::Moose::Sub->new(FOO => bar => 'AHOY') }; -is(eval { $sub_foo_immutable->bar }, 'AHOY', - 'subclass constructor works (immutable)'); + +with_immutable { + my $foo = Foo::Moose->new('FOO', bar => 'BAR'); + is($foo->foo, 'FOO', 'base class accessor works'); + is($foo->bar, 'BAR', 'subclass accessor works'); + $foo->foo('OOF'); + $foo->bar('RAB'); + is($foo->foo, 'OOF', 'base class accessor works (setting)'); + is($foo->bar, 'RAB', 'subclass accessor works (setting)'); + my $sub_foo = eval { Foo::Moose::Sub->new(FOO => bar => 'AHOY') }; + is(eval { $sub_foo->bar }, 'AHOY', 'subclass constructor works'); +} 'Foo::Moose'; |