X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F09-optional.t;h=5380b0b26c4e2a5f3335f3c9810dc96325a6a847;hb=1e60caecca288130cc8d5a200efe23a2698e7863;hp=5905c4a901103fdeac2db70c1667384f70526ed1;hpb=fbb43338b308f8f8bdc5be5199297c197f8730a2;p=gitmo%2FMooseX-Types-Structured.git diff --git a/t/09-optional.t b/t/09-optional.t index 5905c4a..5380b0b 100755 --- a/t/09-optional.t +++ b/t/09-optional.t @@ -6,7 +6,7 @@ use Moose::Util::TypeConstraints; use Moose::Meta::TypeConstraint::Parameterizable; use Moose; - +## Sketch for how this could work ok my $Optional = Moose::Meta::TypeConstraint::Parameterizable->new( name => 'Optional', package_defined_in => __PACKAGE__, @@ -28,25 +28,20 @@ ok my $Optional = Moose::Meta::TypeConstraint::Parameterizable->new( } ); +Moose::Util::TypeConstraints::register_type_constraint($Optional); Moose::Util::TypeConstraints::add_parameterizable_type($Optional); -use Data::Dump qw/dump/; - - foreach my $type (Moose::Util::TypeConstraints::get_all_parameterizable_types()) { - if (my $constraint = $type->generate_constraint_for($Optional)) { - warn 'got this FARRRRRR..........................................'; - } - } - - +## END SKETCH isa_ok $Optional, 'Moose::Meta::TypeConstraint::Parameterizable'; -ok my $int = find_type_constraint('Int') => 'Got Int'; -ok my $arrayref = find_type_constraint('ArrayRef[Int]') => 'Got ArrayRef[Int]'; +ok my $int = Moose::Util::TypeConstraints::find_or_parse_type_constraint('Int') + => 'Got Int'; -ok my $Optional_Int = $Optional->parameterize($int); -ok my $Optional_ArrayRef = $Optional->parameterize($arrayref); +ok my $arrayref = Moose::Util::TypeConstraints::find_or_parse_type_constraint('ArrayRef[Int]') + => 'Got ArrayRef[Int]'; +ok my $Optional_Int = $Optional->parameterize($int), 'Parameterized Int'; +ok my $Optional_ArrayRef = $Optional->parameterize($arrayref), 'Parameterized ArrayRef'; ok $Optional_Int->check() => 'Optional is allowed to not exist'; ok !$Optional_Int->check(undef) => 'Optional is NOT allowed to be undef';