5 use Test::More tests => 10;
7 use lib "$FindBin::Bin/lib";
10 package Test::MooseX::TypeLibrary::TypeDecorator;
13 use DecoratorLibrary qw(
19 has 'arrayrefbase' => (is=>'rw', isa=>MyArrayRefBase, coerce=>1);
20 has 'arrayrefint01' => (is=>'rw', isa=>MyArrayRefInt01, coerce=>1);
23 ## Make sure we have a 'create object sanity check'
25 ok my $type = Test::MooseX::TypeLibrary::TypeDecorator->new(),
26 => 'Created some sort of object';
28 isa_ok $type, 'Test::MooseX::TypeLibrary::TypeDecorator'
29 => "Yes, it's the correct kind of object";
31 ## test arrayrefbase normal and coercion
33 ok $type->arrayrefbase([qw(a b c)])
34 => 'Assigned arrayrefbase qw(a b c)';
36 is_deeply $type->arrayrefbase, [qw(a b c)],
37 => 'Assigment is correct';
39 ok $type->arrayrefbase('d,e,f')
40 => 'Assigned arrayrefbase d,e,f to test coercion';
42 is_deeply $type->arrayrefbase, [qw(d e f)],
43 => 'Assigment and coercion is correct';
45 ## test arrayrefint01 normal and coercion
47 ok $type->arrayrefint01([qw(1 2 3)])
48 => 'Assigned arrayrefbase qw(1 2 3)';
50 is_deeply $type->arrayrefint01, [qw(1 2 3)],
51 => 'Assigment is correct';
53 ok $type->arrayrefint01('4.5.6')
54 => 'Assigned arrayrefbase 4.5.6 to test coercion from Str';
56 is_deeply $type->arrayrefint01, [qw(4 5 6)],
57 => 'Assigment and coercion is correct';
59 ok $type->arrayrefint01({a=>7,b=>8})
60 => 'Assigned arrayrefbase {a=>7,b=>8} to test coercion from HashRef';
62 is_deeply $type->arrayrefint01, [qw(7 8)],
63 => 'Assigment and coercion is correct';
65 #use Data::Dump qw/dump/;
66 #warn dump MyArrayRefInt01;
67 #warn dump MyArrayRefBase->validate('aaa,bbb,ccc');