add upper/lowercase for SimpleStr and Str
[gitmo/MooseX-Types-Common.git] / t / 01-string.t
1 #! /usr/bin/perl -w
2
3 use strict;
4 use warnings;
5 use Test::More tests => 22;
6 use Test::Fatal;
7
8 {
9   package FooTest;
10   use Moose;
11   use MooseX::Types::Common::String (
12     qw(SimpleStr
13        NonEmptySimpleStr
14        LowerCaseSimpleStr
15        UpperCaseSimpleStr
16        Password
17        StrongPassword
18        NonEmptyStr
19        LowerCaseStr
20        UpperCaseStr),
21   );
22
23   has simplestr => ( is => 'rw', isa => SimpleStr );
24   has nestr => ( is => 'rw', isa => NonEmptyStr );
25   has nesimplestr => ( is => 'rw', isa => NonEmptySimpleStr );
26   has lcsimplestr => ( is => 'rw', isa => LowerCaseSimpleStr );
27   has ucsimplestr => ( is => 'rw', isa => UpperCaseSimpleStr );
28   has password => ( is => 'rw', isa => Password );
29   has strongpassword => ( is => 'rw', isa => StrongPassword );
30   has lowercasestr => ( is => 'rw', isa => LowerCaseStr );
31   has uppercasestr => ( is => 'rw', isa => UpperCaseStr );
32 }
33
34 my $ins = FooTest->new;
35
36 is(exception { $ins->simplestr('') }, undef, 'SimpleStr');
37 is(exception { $ins->simplestr('good string') }, undef, 'SimpleStr 2');
38 isnt(exception { $ins->simplestr("bad\nstring") }, 'SimpleStr 3');
39 isnt(exception { $ins->simplestr(join('', ("long string" x 25))) }, undef, 'SimpleStr 4');
40
41 isnt(exception { $ins->nestr('') }, undef, 'NonEmptyStr');
42 is(exception { $ins->nestr('good string') }, undef, 'NonEmptyStr 2');
43 is(exception { $ins->nestr("bad\nstring") }, undef, 'NonEmptyStr 3');
44 is(exception { $ins->nestr(join('', ("long string" x 25))) }, undef, 'NonEmptyStr 4');
45
46 is(exception { $ins->nesimplestr('good str') }, undef, 'NonEmptySimplrStr');
47 isnt(exception { $ins->nesimplestr('') }, undef, 'NonEmptyStr 2');
48
49 isnt(exception { $ins->password('no') }, undef, 'Password');
50 is(exception { $ins->password('okay') }, undef, 'Password 2');
51
52 isnt(exception { $ins->strongpassword('notokay') }, undef, 'StrongPassword');
53 is(exception { $ins->strongpassword('83773r_ch01c3') }, undef, 'StrongPassword 2');
54
55 isnt(exception { $ins->lcsimplestr('NOTOK') }, undef, 'LowerCaseSimpleStr');
56 is(exception { $ins->lcsimplestr('ok') }, undef, 'LowerCaseSimpleStr 2');
57
58 isnt(exception { $ins->ucsimplestr('notok') }, undef, 'UpperCaseSimpleStr');
59 is(exception { $ins->ucsimplestr('OK') }, undef, 'UpperCaseSimpleStr 2');
60
61 isnt(exception { $ins->lowercasestr('NOTOK') }, undef, 'LowerCaseStr');
62 is(exception { $ins->lowercasestr('ok') }, undef, 'LowerCaseStr 2');
63
64 isnt(exception { $ins->uppercasestr('notok') }, undef, 'UpperCaseStr');
65 is(exception { $ins->uppercasestr('OK') }, undef, 'UpperCaseStr 2');