X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F040_type_constraints%2F010_misc_type_tests.t;h=65987b6c96a7b65319347fe0972901012651d6c5;hb=abandoned%2Fname-delegations;hp=75e2fb8e7ef74a2ccdfd5bcc5d3d1ba55e848174;hpb=2dd0aea3321408c61af5bb851fb9ca5ad33596ca;p=gitmo%2FMoose.git diff --git a/t/040_type_constraints/010_misc_type_tests.t b/t/040_type_constraints/010_misc_type_tests.t index 75e2fb8..65987b6 100644 --- a/t/040_type_constraints/010_misc_type_tests.t +++ b/t/040_type_constraints/010_misc_type_tests.t @@ -3,11 +3,11 @@ use strict; use warnings; -use Test::More tests => 19; +use Test::More; use Test::Exception; BEGIN { - use_ok('Moose::Util::TypeConstraints'); + use_ok('Moose::Util::TypeConstraints'); } # subtype 'aliasing' ... @@ -48,78 +48,22 @@ my $subtype2 = subtype 'New2' => as $subtype1; ok $subtype2 => 'made a subtype of our subtype'; -# testing the parameterize method +# assert_valid { - my $parameterizable = subtype 'parameterizable_hashref', - as 'HashRef'; - - my $parameterized = subtype 'parameterized_hashref', - as 'HashRef[Int]'; - - my $int = Moose::Util::TypeConstraints::find_type_constraint('Int'); - - my $from_parameterizable = $parameterizable->parameterize($int); - - isa_ok $parameterizable, 'Moose::Meta::TypeConstraint::Parameterizable', - => 'Got expected type instance'; - - package Test::Moose::Meta::TypeConstraint::Parameterizable; - use Moose; - - has parameterizable => (is=>'rw', isa=>$parameterizable); - has parameterized => (is=>'rw', isa=>$parameterized); - has from_parameterizable => (is=>'rw', isa=>$from_parameterizable); + my $type = find_type_constraint('Num'); + + my $ok_1 = eval { $type->assert_valid(1); }; + ok($ok_1, "we can assert_valid that 1 is of type $type"); + + my $ok_2 = eval { $type->assert_valid('foo'); }; + my $error = $@; + ok(! $ok_2, "'foo' is not of type $type"); + like( + $error, + qr{validation failed for .\Q$type\E.}i, + "correct error thrown" + ); } -# Create and check a dummy object - -ok my $params = Test::Moose::Meta::TypeConstraint::Parameterizable->new() - => 'Create Dummy object for testing'; - -isa_ok $params, 'Test::Moose::Meta::TypeConstraint::Parameterizable' - => 'isa correct type'; - -# test parameterizable - -lives_ok sub { - $params->parameterizable({a=>'Hello', b=>'World'}); -} => 'No problem setting parameterizable'; - -is_deeply $params->parameterizable, {a=>'Hello', b=>'World'} - => 'Got expected values'; - -# test parameterized - -lives_ok sub { - $params->parameterized({a=>1, b=>2}); -} => 'No problem setting parameterized'; - -is_deeply $params->parameterized, {a=>1, b=>2} - => 'Got expected values'; - -throws_ok sub { - $params->parameterized({a=>'Hello', b=>'World'}); -}, qr/Attribute \(parameterized\) does not pass the type constraint/ - => 'parameterized throws expected error'; - -# test from_parameterizable - -lives_ok sub { - $params->from_parameterizable({a=>1, b=>2}); -} => 'No problem setting from_parameterizable'; - -is_deeply $params->from_parameterizable, {a=>1, b=>2} - => 'Got expected values'; - -throws_ok sub { - $params->from_parameterizable({a=>'Hello', b=>'World'}); -}, qr/Attribute \(from_parameterizable\) does not pass the type constraint/ - => 'from_parameterizable throws expected error'; - - - - - - - \ No newline at end of file +done_testing;