3c46c412e7eb93d6b8401ceff8403f7d2889d7d9
[gitmo/MooseX-Types-Common.git] / t / 04-coerce.t
1 use strict;
2 use warnings FATAL => 'all';
3 use Test::More tests => 5;
4
5 {
6   package FooTest;
7   use Moose;
8   use MooseX::Types::Common::String ( qw(
9     LowerCaseSimpleStr
10     UpperCaseSimpleStr
11     LowerCaseStr
12     UpperCaseStr
13         NumericCode
14   ) );
15
16   has uppercasesimplestr => ( is => 'rw', isa => UpperCaseSimpleStr, coerce => 1 );
17   has lowercasesimplestr => ( is => 'rw', isa => LowerCaseSimpleStr, coerce => 1 );
18   has uppercasestr => ( is => 'rw', isa => UpperCaseStr, coerce => 1 );
19   has lowercasestr => ( is => 'rw', isa => LowerCaseStr, coerce => 1 );
20   has numericcode  => ( is => 'rw', isa => NumericCode,  coerce => 1 );
21 }
22
23 my $ins = FooTest->new({
24   uppercasesimplestr => 'foo',
25   lowercasesimplestr => 'BAR',
26   uppercasestr => 'foo',
27   lowercasestr => 'BAR',
28   numericcode  => '4111-1111-1111-1111',
29 });
30
31 is( $ins->uppercasesimplestr, 'FOO', 'uppercase str' );
32 is( $ins->lowercasesimplestr, 'bar', 'lowercase str' );
33
34 is( $ins->uppercasestr, 'FOO', 'uppercase str' );
35 is( $ins->lowercasestr, 'bar', 'lowercase str' );
36
37 is( $ins->numericcode, '4111111111111111', 'numeric code' );