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