summaryrefslogtreecommitdiffstats
path: root/t/002-immutable.t
diff options
context:
space:
mode:
Diffstat (limited to 't/002-immutable.t')
-rw-r--r--t/002-immutable.t11
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';