Commit | Line | Data |
a4a88fef |
1 | BEGIN { |
2 | use strict; |
3 | use warnings; |
4 | use Test::More tests=>12; |
5 | use Test::Exception; |
6 | } |
7 | |
8 | { |
9 | ## Tests for the Moose::Meta::TypeConstraints API stuff (equals, etc) |
10 | package Test::MooseX::Meta::TypeConstraint::Structured::API; |
11 | |
12 | use Moose; |
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 |
18 | )]; |
19 | |
20 | ## Create some sample Dicts |
21 | |
22 | my $MyDict1 = subtype MyDict1, |
23 | as Dict[name=>Str, age=>Int]; |
24 | |
25 | my $MyDict2 = subtype MyDict2, |
26 | as Dict[name=>Str, age=>Int]; |
27 | |
28 | my $MyDict3 = subtype MyDict3, |
29 | as Dict[key=>Int, anotherkey=>Str]; |
30 | |
31 | my $subMyDict3 = subtype subMyDict3, |
32 | as MyDict3; |
33 | |
34 | ## Create some sample Tuples |
35 | |
36 | my $MyTuple1 = subtype MyTuple1, |
37 | as Tuple[Int,Int,Str]; |
38 | |
39 | my $MyTuple2 = subtype MyTuple2, |
40 | as Tuple[Int,Int,Str]; |
41 | |
42 | my $MyTuple3 = subtype MyTuple3, |
43 | as Tuple[Object, HashRef]; |
44 | |
45 | my $subMyTuple3 = subtype subMyTuple3, |
46 | as MyTuple3; |
47 | } |
48 | |
49 | ## Test equals |
50 | |
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'; |
57 | |
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'; |
64 | |
65 | ## Test is_a_type_of |
66 | |
67 | ## is_subtype_of |
68 | |
69 | |