created regression test for type constraint change in Moose 1.05
[gitmo/MooseX-Types-Structured.git] / t / regressions / 01-is_type_of.t
CommitLineData
5bd9a68e 1BEGIN {
2 use strict;
3 use warnings;
4 use Test::More tests=>5;
5}
6
7{
8 package TypeLib;
9 use MooseX::Types::Structured qw(Dict Tuple);
10 use MooseX::Types::Moose qw(Int Str Item);
11 use MooseX::Types -declare => [qw(
12 MyDict1 MyDict2 MyDict4
13 )];
14
15 subtype MyDict1,
16 as Dict[name=>Str, age=>Int];
17
18 subtype MyDict2,
19 as Dict[name=>Str, age=>Int];
20
21 subtype MyDict4,
22 as Dict[name=>Str, age=>Item];
23
24}
25
26use Moose::Util::TypeConstraints;
27use MooseX::Types::Structured qw(Dict Tuple);
28use MooseX::Types::Moose qw(Int Str Item Object ArrayRef HashRef);
29
30BEGIN {
31 TypeLib->import(':all');
32}
33
34ok ( MyDict2->is_a_type_of(MyDict4),
35 'MyDict2 is_a_type_of MyDict4');
36
37ok ( (Tuple[Tuple[ class_type('Paper'), class_type('Stone') ], Dict[]])->is_a_type_of( Tuple[Tuple[ Item, Item ], Dict[]] ),
38 "tuple of tuple" );
39
40ok ( (Tuple[Tuple[ class_type('Paper'), class_type('Stone') ], Dict[]])->is_a_type_of( Tuple[Tuple[ Item, Item ], Dict[]] ),
41 "tuple of tuple" );
42
43ok ( (Tuple[Tuple[ class_type('Paper'), class_type('Stone') ], Dict[]])->is_subtype_of( Tuple[Tuple[ Item, Item ], Dict[]] ),
44 "tuple of tuple" );
45
46ok ( MyDict1->is_subtype_of(MyDict4),
47 'MyDict1 is_subtype_of MyDict4');
48