Fix 'Int' type constraint for dualvars (like $!)
[gitmo/Mouse.git] / t / 001_mouse / 071_tc_dualvar.t
diff --git a/t/001_mouse/071_tc_dualvar.t b/t/001_mouse/071_tc_dualvar.t
new file mode 100644 (file)
index 0000000..44f468f
--- /dev/null
@@ -0,0 +1,30 @@
+#!perl -w
+use strict;
+use Test::More;
+use Errno qw(ENOENT EPERM);
+{
+    package Foo;
+    use Mouse;
+    has intval => (
+        is  => 'rw',
+        isa => 'Int',
+    );
+    has numval => (
+        is  => 'rw',
+        isa => 'Num',
+    );
+}
+
+my $foo = Foo->new();
+
+for my $e(ENOENT, EPERM) {
+    $! = $e;
+    eval { $foo->intval($!) };
+    like $@, qr/Validation failed for 'Int'/, 'Int for dualvar';
+
+    $! = $e;
+    eval { $foo->numval($!) };
+    like $@, qr/Validation failed for 'Num'/, 'Num for dualvar';
+}
+done_testing;
+