add test for named types
Matt S Trout [Wed, 4 Apr 2012 09:51:43 +0000 (09:51 +0000)]
xt/moox-types.t [new file with mode: 0644]

diff --git a/xt/moox-types.t b/xt/moox-types.t
new file mode 100644 (file)
index 0000000..3f3eef5
--- /dev/null
@@ -0,0 +1,42 @@
+use strictures 1;
+use Test::More;
+
+{
+  package TypeOMatic;
+
+  use Moo::Role;
+  use Sub::Quote;
+  use MooX::Types::MooseLike::Base qw(Str);
+  use MooX::Types::MooseLike::Numeric qw(PositiveInt);
+
+  has named_type => (
+    is => 'ro',
+    isa => Str,
+  );
+
+  has named_external_type => (
+    is => 'ro',
+    isa => PositiveInt,
+  );
+
+  package TypeOMatic::Consumer;
+
+  # do this as late as possible to simulate "real" behaviour
+  use Moo::HandleMoose;
+  use Moose;
+  with 'TypeOMatic';
+}
+
+my $meta = Class::MOP::class_of('TypeOMatic::Consumer');
+
+my ($str, $positive_int)
+  = map $meta->get_attribute($_)->type_constraint->name,
+      qw(named_type named_external_type);
+
+is($str, 'Str', 'Built-in Moose type ok');
+is(
+  $positive_int, 'MooseX::Types::Common::Numeric::PositiveInt',
+  'External (MooseX::Types type) ok'
+);
+
+done_testing;