diff options
Diffstat (limited to 't/compat/moose_respects_base.t')
-rw-r--r-- | t/compat/moose_respects_base.t | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/compat/moose_respects_base.t b/t/compat/moose_respects_base.t new file mode 100644 index 0000000..84b9fda --- /dev/null +++ b/t/compat/moose_respects_base.t @@ -0,0 +1,46 @@ +use strict; +use warnings; + +use Test::More; + + +=pod + +This test demonstrates that Moose will respect +a previously set @ISA using use base, and not +try to add Moose::Object to it. + +However, this is extremely order sensitive as +this test also demonstrates. + +=cut + +{ + package Foo; + use strict; + use warnings; + + sub foo { 'Foo::foo' } + + package Bar; + use parent -norequire => 'Foo'; + use Moose; + + sub new { (shift)->meta->new_object(@_) } + + package Baz; + use Moose; + use parent -norequire => 'Foo'; +} + +my $bar = Bar->new; +isa_ok($bar, 'Bar'); +isa_ok($bar, 'Foo'); +ok(!$bar->isa('Moose::Object'), '... Bar is not Moose::Object subclass'); + +my $baz = Baz->new; +isa_ok($baz, 'Baz'); +isa_ok($baz, 'Foo'); +isa_ok($baz, 'Moose::Object'); + +done_testing; |