Commit | Line | Data |
ac73ab52 |
1 | #! /usr/bin/perl -w |
2 | |
3 | use strict; |
4 | use warnings; |
559b5d74 |
5 | use Test::More tests => 25; |
3d272255 |
6 | use Test::Fatal; |
ac73ab52 |
7 | |
8 | { |
9 | package FooTest; |
10 | use Moose; |
5b561c82 |
11 | use MooseX::Types::Common::String ( |
a5c9a433 |
12 | qw(SimpleStr |
13 | NonEmptySimpleStr |
14 | LowerCaseSimpleStr |
15 | UpperCaseSimpleStr |
16 | Password |
17 | StrongPassword |
18 | NonEmptyStr |
19 | LowerCaseStr |
559b5d74 |
20 | UpperCaseStr |
21 | NumericCode |
22 | ), |
ac73ab52 |
23 | ); |
24 | |
a5c9a433 |
25 | has simplestr => ( is => 'rw', isa => SimpleStr ); |
26 | has nestr => ( is => 'rw', isa => NonEmptyStr ); |
27 | has nesimplestr => ( is => 'rw', isa => NonEmptySimpleStr ); |
28 | has lcsimplestr => ( is => 'rw', isa => LowerCaseSimpleStr ); |
29 | has ucsimplestr => ( is => 'rw', isa => UpperCaseSimpleStr ); |
30 | has password => ( is => 'rw', isa => Password ); |
31 | has strongpassword => ( is => 'rw', isa => StrongPassword ); |
32 | has lowercasestr => ( is => 'rw', isa => LowerCaseStr ); |
33 | has uppercasestr => ( is => 'rw', isa => UpperCaseStr ); |
559b5d74 |
34 | has numericcode => ( is => 'rw', isa => NumericCode ); |
ac73ab52 |
35 | } |
36 | |
37 | my $ins = FooTest->new; |
38 | |
3d272255 |
39 | is(exception { $ins->simplestr('') }, undef, 'SimpleStr'); |
40 | is(exception { $ins->simplestr('good string') }, undef, 'SimpleStr 2'); |
41 | isnt(exception { $ins->simplestr("bad\nstring") }, 'SimpleStr 3'); |
42 | isnt(exception { $ins->simplestr(join('', ("long string" x 25))) }, undef, 'SimpleStr 4'); |
ac73ab52 |
43 | |
3d272255 |
44 | isnt(exception { $ins->nestr('') }, undef, 'NonEmptyStr'); |
45 | is(exception { $ins->nestr('good string') }, undef, 'NonEmptyStr 2'); |
46 | is(exception { $ins->nestr("bad\nstring") }, undef, 'NonEmptyStr 3'); |
47 | is(exception { $ins->nestr(join('', ("long string" x 25))) }, undef, 'NonEmptyStr 4'); |
ac73ab52 |
48 | |
3d272255 |
49 | is(exception { $ins->nesimplestr('good str') }, undef, 'NonEmptySimplrStr'); |
50 | isnt(exception { $ins->nesimplestr('') }, undef, 'NonEmptyStr 2'); |
ac73ab52 |
51 | |
3d272255 |
52 | isnt(exception { $ins->password('no') }, undef, 'Password'); |
53 | is(exception { $ins->password('okay') }, undef, 'Password 2'); |
ac73ab52 |
54 | |
3d272255 |
55 | isnt(exception { $ins->strongpassword('notokay') }, undef, 'StrongPassword'); |
56 | is(exception { $ins->strongpassword('83773r_ch01c3') }, undef, 'StrongPassword 2'); |
a5c9a433 |
57 | |
58 | isnt(exception { $ins->lcsimplestr('NOTOK') }, undef, 'LowerCaseSimpleStr'); |
59 | is(exception { $ins->lcsimplestr('ok') }, undef, 'LowerCaseSimpleStr 2'); |
60 | |
61 | isnt(exception { $ins->ucsimplestr('notok') }, undef, 'UpperCaseSimpleStr'); |
62 | is(exception { $ins->ucsimplestr('OK') }, undef, 'UpperCaseSimpleStr 2'); |
63 | |
64 | isnt(exception { $ins->lowercasestr('NOTOK') }, undef, 'LowerCaseStr'); |
4a305974 |
65 | is(exception { $ins->lowercasestr("ok\nok") }, undef, 'LowerCaseStr 2'); |
a5c9a433 |
66 | |
67 | isnt(exception { $ins->uppercasestr('notok') }, undef, 'UpperCaseStr'); |
4a305974 |
68 | is(exception { $ins->uppercasestr("OK\nOK") }, undef, 'UpperCaseStr 2'); |
559b5d74 |
69 | |
70 | |
71 | is( exception { $ins->numericcode('032') }, undef, 'NumericCode lives'); |
72 | isnt( exception { $ins->numericcode('abc') }, undef, 'NumericCode dies' ); |
73 | isnt( exception { $ins->numericcode('x18') }, undef, 'mixed NumericCode dies'); |