#!/usr/bin/env perl use strict; use warnings; use Test::More tests => 3; use Test::Fatal; { use Moose::Util::TypeConstraints; subtype 'ShortStr', as 'Str', where { length($_) < 3 }; no Moose::Util::TypeConstraints; } { package Foo; use Moose; use MooseX::Constructor::AllErrors; has short_str => ( is => 'ro', isa => 'ShortStr', ); Foo->meta->make_immutable; } { package Bar; use Moose; has short_str => ( is => 'ro', isa => 'ShortStr', ); Bar->meta->make_immutable; } ok ! exception { Bar->new( short_str => 'a') }, 'Instance of Test Class without MooseX::Constructor::AllErrors lives'; ok exception { Bar->new( short_str => 'aaaaaaaa' ); }, '... and dies with incorrect input ( Type Constraint is effective )'; ok ! exception { Foo->new( short_str => 'a') }, 'Instance of Test Class WITH MooseX::Constructor::AllErrors lives';