Fixed a couple doc typos
[gitmo/MooseX-Types-Structured.git] / t / 06-api.t
CommitLineData
a4a88fef 1BEGIN {
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
51ok $MyDict1->equals($MyDict2), '$MyDict1 == $MyDict2';
52ok $MyDict2->equals($MyDict1), '$MyDict2 == $MyDict1';
53ok ! $MyDict1->equals($MyDict3), '$MyDict1 == $MyDict3';
54ok ! $MyDict2->equals($MyDict3), '$MyDict2 == $MyDict3';
55ok ! $MyDict3->equals($MyDict2), '$MyDict3 == $MyDict2';
56ok ! $MyDict3->equals($MyDict1), '$MyDict3 == $MyDict1';
57
58ok $MyTuple1->equals($MyTuple2), '$MyTuple1 == $MyTuple2';
59ok $MyTuple2->equals($MyTuple1), '$MyTuple2 == $MyTuple1';
60ok ! $MyTuple1->equals($MyTuple3), '$MyTuple1 == $MyTuple3';
61ok ! $MyTuple2->equals($MyTuple3), '$MyTuple2 == $MyTuple3';
62ok ! $MyTuple3->equals($MyTuple2), '$MyTuple3 == $MyTuple2';
63ok ! $MyTuple3->equals($MyTuple1), '$MyTuple3 == $MyTuple1';
64
65## Test is_a_type_of
66
67## is_subtype_of
68
69