diff options
Diffstat (limited to 't/002-immutable.t')
-rw-r--r-- | t/002-immutable.t | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/t/002-immutable.t b/t/002-immutable.t index 0f4bce8..66424da 100644 --- a/t/002-immutable.t +++ b/t/002-immutable.t @@ -1,7 +1,7 @@ #!/usr/bin/env perl use strict; use warnings; -use Test::More tests => 5; +use Test::More tests => 9; use Test::Exception; package Foo; @@ -26,6 +26,10 @@ use Moose; 'extending fails with the correct error when requires are not fulfilled'; sub bar { } +package Foo::Sub::Sub; +use Moose; +::lives_ok { extends 'Foo::Sub1' } 'extending twice works'; + __PACKAGE__->meta->make_immutable; package main; @@ -33,5 +37,10 @@ my $foosub; lives_ok { $foosub = Foo::Sub1->new } 'instantiating concrete subclasses works'; isa_ok($foosub, 'Foo', 'inheritance is correct'); +my $foosubsub; +lives_ok { $foosubsub = Foo::Sub::Sub->new } + 'instantiating deeper concrete subclasses works'; +isa_ok($foosubsub, 'Foo', 'inheritance is correct'); +isa_ok($foosubsub, 'Foo::Sub1', 'inheritance is correct'); throws_ok { Foo->new } qr/Foo is abstract, it cannot be instantiated/, 'instantiating abstract classes fails'; |