4 use Test::More tests=>12;
9 ## Tests for the Moose::Meta::TypeConstraints API stuff (equals, etc)
10 package Test::MooseX::Meta::TypeConstraint::Structured::API;
13 use MooseX::Types::Structured qw(Dict Tuple);
14 use MooseX::Types::Moose qw(Int Str Object ArrayRef HashRef);
15 use MooseX::Types -declare => [qw(
16 MyDict1 MyDict2 MyDict3 subMyDict3
17 MyTuple1 MyTuple2 MyTuple3 subMyTuple3
20 ## Create some sample Dicts
22 my $MyDict1 = subtype MyDict1,
23 as Dict[name=>Str, age=>Int];
25 my $MyDict2 = subtype MyDict2,
26 as Dict[name=>Str, age=>Int];
28 my $MyDict3 = subtype MyDict3,
29 as Dict[key=>Int, anotherkey=>Str];
31 my $subMyDict3 = subtype subMyDict3,
34 ## Create some sample Tuples
36 my $MyTuple1 = subtype MyTuple1,
37 as Tuple[Int,Int,Str];
39 my $MyTuple2 = subtype MyTuple2,
40 as Tuple[Int,Int,Str];
42 my $MyTuple3 = subtype MyTuple3,
43 as Tuple[Object, HashRef];
45 my $subMyTuple3 = subtype subMyTuple3,
51 ok $MyDict1->equals($MyDict2), '$MyDict1 == $MyDict2';
52 ok $MyDict2->equals($MyDict1), '$MyDict2 == $MyDict1';
53 ok ! $MyDict1->equals($MyDict3), '$MyDict1 == $MyDict3';
54 ok ! $MyDict2->equals($MyDict3), '$MyDict2 == $MyDict3';
55 ok ! $MyDict3->equals($MyDict2), '$MyDict3 == $MyDict2';
56 ok ! $MyDict3->equals($MyDict1), '$MyDict3 == $MyDict1';
58 ok $MyTuple1->equals($MyTuple2), '$MyTuple1 == $MyTuple2';
59 ok $MyTuple2->equals($MyTuple1), '$MyTuple2 == $MyTuple1';
60 ok ! $MyTuple1->equals($MyTuple3), '$MyTuple1 == $MyTuple3';
61 ok ! $MyTuple2->equals($MyTuple3), '$MyTuple2 == $MyTuple3';
62 ok ! $MyTuple3->equals($MyTuple2), '$MyTuple3 == $MyTuple2';
63 ok ! $MyTuple3->equals($MyTuple1), '$MyTuple3 == $MyTuple1';