X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F040_type_constraints%2F026_normalize_type_name.t;h=6379db321b65ebaba0516f25fe8d0daa6285953c;hb=32f143e50cde688a3fc4e6b49e96cfff6185e6fe;hp=1f458eef351cc0bb34264d27de4509615c2c8e41;hpb=fa92d70556d0a2f43e2ed5ab62e30a14acc1c60e;p=gitmo%2FMoose.git diff --git a/t/040_type_constraints/026_normalize_type_name.t b/t/040_type_constraints/026_normalize_type_name.t index 1f458ee..6379db3 100644 --- a/t/040_type_constraints/026_normalize_type_name.t +++ b/t/040_type_constraints/026_normalize_type_name.t @@ -3,151 +3,149 @@ use strict; use warnings; -use Test::More tests => 39; +use Test::More tests => 37; use Test::Exception; BEGIN { - use_ok('Moose::Util::TypeConstraints'); + use_ok('Moose::Util::TypeConstraints'); } ## First, we check that the new regex parsing works -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[Str]') - => 'detected correctly'; +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[Str]') => 'detected correctly'; is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[Str]')], - ["ArrayRef", "Str"] - => 'Correctly parsed ArrayRef[Str]'; + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[Str]') + ], + [ "ArrayRef", "Str" ] => 'Correctly parsed ArrayRef[Str]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[Str ]') => 'detected correctly'; -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[Str ]') - => 'detected correctly'; - is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[Str ]')], - ["ArrayRef", "Str"] - => 'Correctly parsed ArrayRef[Str ]'; + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[Str ]') + ], + [ "ArrayRef", "Str" ] => 'Correctly parsed ArrayRef[Str ]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[ Str]') => 'detected correctly'; -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[ Str]') - => 'detected correctly'; - is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[ Str]')], - ["ArrayRef", "Str"] - => 'Correctly parsed ArrayRef[ Str]'; + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[ Str]') + ], + [ "ArrayRef", "Str" ] => 'Correctly parsed ArrayRef[ Str]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[ Str ]') => 'detected correctly'; -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[ Str ]') - => 'detected correctly'; - is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[ Str ]')], - ["ArrayRef", "Str"] - => 'Correctly parsed ArrayRef[ Str ]'; + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[ Str ]') + ], + [ "ArrayRef", "Str" ] => 'Correctly parsed ArrayRef[ Str ]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[ HashRef[Int] ]') => 'detected correctly'; -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[ HashRef[Int] ]') - => 'detected correctly'; - is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[ HashRef[Int] ]')], - ["ArrayRef", "HashRef[Int]"] - => 'Correctly parsed ArrayRef[ HashRef[Int] ]'; + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[ HashRef[Int] ]') + ], + [ "ArrayRef", "HashRef[Int]" ] => + 'Correctly parsed ArrayRef[ HashRef[Int] ]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[ HashRef[Int ] ]') => 'detected correctly'; -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[ HashRef[Int ] ]') - => 'detected correctly'; - is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[ HashRef[Int ] ]')], - ["ArrayRef", "HashRef[Int ]"] - => 'Correctly parsed ArrayRef[ HashRef[Int ] ]'; + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[ HashRef[Int ] ]') + ], + [ "ArrayRef", "HashRef[Int ]" ] => + 'Correctly parsed ArrayRef[ HashRef[Int ] ]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[Int|Str]') => 'detected correctly'; -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[Int,Str]') - => 'detected correctly'; - is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[Int,Str]')], - ["ArrayRef", "Int", "Str"] - => 'Correctly parsed ArrayRef[Int,Str]'; - -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('ArrayRef[ArrayRef[Int],Str]') - => 'detected correctly'; - + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[Int|Str]') + ], + [ "ArrayRef", "Int|Str" ] => 'Correctly parsed ArrayRef[Int|Str]'; + +ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint( + 'ArrayRef[ArrayRef[Int]|Str]') => 'detected correctly'; + is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('ArrayRef[ArrayRef[Int],Str]')], - ["ArrayRef", "ArrayRef[Int]", "Str"] - => 'Correctly parsed ArrayRef[ArrayRef[Int],Str]'; - -ok Moose::Util::TypeConstraints::_detect_parameterized_type_constraint('HashRef[key1 => Int, key2=>Int, key3=>ArrayRef[Int]]') - => 'detected correctly'; - -is_deeply - [Moose::Util::TypeConstraints::_parse_parameterized_type_constraint('HashRef[key1 => Int, key2=>Int, key3=>ArrayRef[Int]]')], - ["HashRef", "key1", "Int", "key2", "Int", "key3", "ArrayRef[Int]"] - => 'Correctly parsed HashRef[key1 => Int, key2=>Int, key3=>ArrayRef[Int]]'; - + [ + Moose::Util::TypeConstraints::_parse_parameterized_type_constraint( + 'ArrayRef[ArrayRef[Int]|Str]') + ], + [ "ArrayRef", "ArrayRef[Int]|Str" ] => + 'Correctly parsed ArrayRef[ArrayRef[Int]|Str]'; + ## creating names via subtype -ok my $r = Moose::Util::TypeConstraints->get_type_constraint_registry - => 'Got registry object'; +ok my $r = Moose::Util::TypeConstraints->get_type_constraint_registry => + 'Got registry object'; -ok my $subtype_a1 = subtype('subtype_a1' => as 'HashRef[Int]'), - => 'created subtype_a1'; - -ok my $subtype_a2 = subtype('subtype_a2' => as 'HashRef[ Int]'), - => 'created subtype_a2'; +ok my $subtype_a1 + = subtype( 'subtype_a1' => as 'HashRef[Int]' ), => 'created subtype_a1'; -ok my $subtype_a3 = subtype('subtype_a2' => as 'HashRef[Int ]'), - => 'created subtype_a2'; +ok my $subtype_a2 + = subtype( 'subtype_a2' => as 'HashRef[ Int]' ), => 'created subtype_a2'; -ok my $subtype_a4 = subtype('subtype_a2' => as 'HashRef[ Int ]'), - => 'created subtype_a2'; +ok my $subtype_a3 + = subtype( 'subtype_a2' => as 'HashRef[Int ]' ), => 'created subtype_a2'; -is $subtype_a1->parent->name, $subtype_a2->parent->name - =>'names match'; +ok my $subtype_a4 = subtype( 'subtype_a2' => as 'HashRef[ Int ]' ), => + 'created subtype_a2'; -is $subtype_a1->parent->name, $subtype_a3->parent->name - =>'names match'; - -is $subtype_a1->parent->name, $subtype_a4->parent->name - =>'names match'; +is $subtype_a1->parent->name, $subtype_a2->parent->name => 'names match'; -ok my $subtype_b1 = subtype('subtype_b1' => as 'HashRef[Int|Str]'), - => 'created subtype_b1'; - -ok my $subtype_b2 = subtype('subtype_b2' => as 'HashRef[Int | Str]'), - => 'created subtype_b2'; +is $subtype_a1->parent->name, $subtype_a3->parent->name => 'names match'; -ok my $subtype_b3 = subtype('subtype_b2' => as 'HashRef[Str|Int]'), - => 'created subtype_b3'; +is $subtype_a1->parent->name, $subtype_a4->parent->name => 'names match'; -is $subtype_b1->parent->name, $subtype_b2->parent->name - =>'names match'; +ok my $subtype_b1 = subtype( 'subtype_b1' => as 'HashRef[Int|Str]' ), => + 'created subtype_b1'; -is $subtype_b1->parent->name, $subtype_b3->parent->name - =>'names match'; - -is $subtype_b2->parent->name, $subtype_b3->parent->name - =>'names match'; +ok my $subtype_b2 = subtype( 'subtype_b2' => as 'HashRef[Int | Str]' ), => + 'created subtype_b2'; + +ok my $subtype_b3 = subtype( 'subtype_b3' => as 'HashRef[Str|Int]' ), => + 'created subtype_b3'; + +is $subtype_b1->parent->name, $subtype_b2->parent->name => 'names match'; + +is $subtype_b1->parent->name, $subtype_b3->parent->name => 'names match'; + +is $subtype_b2->parent->name, $subtype_b3->parent->name => 'names match'; ## testing via add_constraint ok my $union1 = Moose::Util::TypeConstraints::create_type_constraint_union( - 'ArrayRef[Int|Str] | ArrayRef[Int | HashRef]') => 'Created Union1'; + 'ArrayRef[Int|Str] | ArrayRef[Int | HashRef]') => 'Created Union1'; ok my $union2 = Moose::Util::TypeConstraints::create_type_constraint_union( - 'ArrayRef[ Int|Str] | ArrayRef[Int | HashRef]') => 'Created Union2'; - + 'ArrayRef[ Int|Str] | ArrayRef[Int | HashRef]') => 'Created Union2'; + ok my $union3 = Moose::Util::TypeConstraints::create_type_constraint_union( - 'ArrayRef[Int |Str ] | ArrayRef[Int | HashRef ]') => 'Created Union3'; - -is $union1->name, $union2->name, - 'names match'; - -is $union1->name, $union3->name, - 'names match'; - -is $union2->name, $union3->name, - 'names match'; - - - - \ No newline at end of file + 'ArrayRef[Int |Str ] | ArrayRef[Int | HashRef ]') => 'Created Union3'; + +is $union1->name, $union2->name, 'names match'; + +is $union1->name, $union3->name, 'names match'; + +is $union2->name, $union3->name, 'names match';