role support, in MooseX::StrictConstructor::FromRole
[gitmo/MooseX-StrictConstructor.git] / t / role.t
diff --git a/t/role.t b/t/role.t
new file mode 100644 (file)
index 0000000..4d62bae
--- /dev/null
+++ b/t/role.t
@@ -0,0 +1,37 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Fatal;
+use Test::Moose qw( with_immutable );
+
+{
+    package Role;
+
+    use Moose::Role;
+    use MooseX::StrictConstructor::FromRole;
+
+    has 'size' => ( is => 'rw' );
+}
+
+{
+    package Standard;
+
+    use Moose;
+    with 'Role';
+
+    has 'thing' => ( is => 'rw' );
+}
+
+my @classes = qw( Standard );
+with_immutable {
+
+    like(
+        exception { Standard->new( thing => 1, bad => 99 ) },
+        qr/unknown attribute.+: bad/,
+        'strict constructor applied from role blows up on unknown params'
+    );
+}
+@classes;
+
+done_testing();