first go at a fix for reported bug
[gitmo/MooseX-Types-Structured.git] / t / bug-mixed-stringy.t
diff --git a/t/bug-mixed-stringy.t b/t/bug-mixed-stringy.t
new file mode 100644 (file)
index 0000000..9a4682a
--- /dev/null
@@ -0,0 +1,53 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+{
+  package Test::MooseX::Types::Structured::StringyBug;
+
+  use Moose;
+  use MooseX::Types::Moose qw(Str);
+  use MooseX::Types::Structured qw(Tuple Dict);
+  use Moose::Util::TypeConstraints;
+
+  subtype "TestStringTypes::SubType",
+    as Str,
+    where { 1 };
+
+  has 'attr1' => (
+    is  => 'ro',
+    required => 1,
+    isa => Dict[
+      foo1 => Str,
+      foo2 => "Int",
+      foo3 => "TestStringTypes::SubType",
+    ],
+  );
+
+  has 'attr2' => (
+    is  => 'ro',
+    required => 1,
+    isa => Tuple[
+      Str,
+      "Int",
+      "TestStringTypes::SubType",
+    ],
+  );
+}
+
+my %init_args = (
+  attr1 => {
+    foo1 => 'a',
+    foo2 => 2,
+    foo3 => 'c',
+  },
+  attr2 => ['a', 2, 'c'],
+);
+
+ok(
+  Test::MooseX::Types::Structured::StringyBug->new(%init_args),
+  'Made a class with mixed constraint types',
+);
+
+done_testing;