--- /dev/null
+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;