Require Test::More 0.88 +
[gitmo/MooseX-StrictConstructor.git] / t / basic.t
index 1738d92..5252dc9 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -3,7 +3,7 @@ use warnings;
 
 use Test::Fatal;
 use Test::Moose qw( with_immutable );
-use Test::More;
+use Test::More 0.88;
 
 {
     package Standard;
@@ -44,6 +44,17 @@ use Test::More;
 }
 
 {
+    package OtherStrictSubclass;
+
+    use Moose;
+    use MooseX::StrictConstructor;
+
+    extends 'Standard';
+
+    has 'size' => ( is => 'rw' );
+}
+
+{
     package Tricky;
 
     use Moose;
@@ -69,7 +80,8 @@ use Test::More;
     has 'size'  => ( is => 'rw', 'init_arg' => undef );
 }
 
-my @classes = qw( Standard Stricter Subclass StrictSubclass Tricky InitArg );
+my @classes
+    = qw( Standard Stricter Subclass StrictSubclass OtherStrictSubclass Tricky InitArg );
 
 with_immutable {
     is(
@@ -95,14 +107,27 @@ with_immutable {
     );
 
     is(
-        exception { StrictSubclass->new( thing => 1, size => 'large', ) }, undef,
-        'subclass that doesn\'t use strict constructor handles known attributes correctly'
+        exception { StrictSubclass->new( thing => 1, size => 'large', ) },
+        undef,
+        q{subclass that doesn't use strict constructor handles known attributes correctly}
     );
 
     like(
         exception { StrictSubclass->new( thing => 1, bad => 99 ) },
         qr/unknown attribute.+: bad/,
-        'subclass that doesn\'t use strict correctly recognizes bad attribute'
+        q{subclass that doesn't use strict correctly recognizes bad attribute}
+    );
+
+    is(
+        exception { OtherStrictSubclass->new( thing => 1, size => 'large', ) },
+        undef,
+        q{strict subclass from parent that doesn't use strict constructor handles known attributes correctly}
+    );
+
+    like(
+        exception { OtherStrictSubclass->new( thing => 1, bad => 99 ) },
+        qr/unknown attribute.+: bad/,
+        q{strict subclass from parent that doesn't use strict correctly recognizes bad attribute}
     );
 
     is(