recursion test
[gitmo/MooseX-Types.git] / t / 15_recursion.t
1 ## Test case inspired by Stevan Little
2
3 BEGIN {
4     package MooseX::Types::Test::Recursion;
5     
6     use Moose;
7
8     use Moose::Util::TypeConstraints;
9     use MooseX::Types::Moose qw(Str HashRef);
10     use MooseX::Types -declare => [qw(
11         RecursiveHashRef
12     )];
13
14     ## Define a recursive subtype and Cthulhu save us.
15     subtype RecursiveHashRef()
16      => as HashRef[Str() | RecursiveHashRef()];
17 }
18
19 {
20     package MooseX::Types::Test::Recursion::TestRunner;
21     
22     BEGIN {
23         use Test::More 'no_plan';
24         use Data::Dump qw/dump/;
25         
26         MooseX::Types::Test::Recursion->import(':all');
27     };
28
29     
30     ok RecursiveHashRef->check({key=>"value"})
31      => 'properly validated {key=>"value"}';
32      
33     ok RecursiveHashRef->check({key=>{subkey=>"value"}})
34      => 'properly validated {key=>{subkey=>"value"}}';
35      
36      
37     warn dump RecursiveHashRef();
38 }
39
40
41
42
43
44