add (author-only) warning tests
[gitmo/MooseX-Types-Common.git] / t / 01-string.t
1 use strict;
2 use warnings FATAL => 'all';
3
4 use Test::More;
5 use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';
6
7 use MooseX::Types::Common::String qw(
8     SimpleStr
9     NonEmptySimpleStr
10     LowerCaseSimpleStr
11     UpperCaseSimpleStr
12     Password
13     StrongPassword
14     NonEmptyStr
15     LowerCaseStr
16     UpperCaseStr
17     NumericCode
18 );
19
20 # TODO: need to check both the inlined and non-inlined versions!
21
22 ok(is_SimpleStr(''), 'SimpleStr');
23 ok(is_SimpleStr('a string'), 'SimpleStr 2');
24 ok(!is_SimpleStr("another\nstring"), 'SimpleStr 3');
25 ok(!is_SimpleStr(join('', ("long string" x 25))), 'SimpleStr 4');
26
27 ok(!is_NonEmptyStr(''), 'NonEmptyStr');
28 ok(is_NonEmptyStr('a string'), 'NonEmptyStr 2');
29 ok(is_NonEmptyStr("another string"), 'NonEmptyStr 3');
30 ok(is_NonEmptyStr(join('', ("long string" x 25))), 'NonEmptyStr 4');
31
32 ok(is_NonEmptySimpleStr('good str'), 'NonEmptySimplrStr');
33 ok(!is_NonEmptySimpleStr(''), 'NonEmptyStr 2');
34
35 ok(!is_Password('no'), 'Password');
36 ok(is_Password('okay'), 'Password 2');
37
38 ok(!is_StrongPassword('notokay'), 'StrongPassword');
39 ok(is_StrongPassword('83773r_ch01c3'), 'StrongPassword 2');
40
41 ok(!is_LowerCaseSimpleStr('NOTOK'), 'LowerCaseSimpleStr');
42 ok(is_LowerCaseSimpleStr('ok'), 'LowerCaseSimpleStr 2');
43 ok(!is_LowerCaseSimpleStr('NOTOK_123`"'), 'LowerCaseSimpleStr 3');
44 ok(is_LowerCaseSimpleStr('ok_123`"'), 'LowerCaseSimpleStr 4');
45
46 ok(!is_UpperCaseSimpleStr('notok'), 'UpperCaseSimpleStr');
47 ok(is_UpperCaseSimpleStr('OK'), 'UpperCaseSimpleStr 2');
48 ok(!is_UpperCaseSimpleStr('notok_123`"'), 'UpperCaseSimpleStr 3');
49 ok(is_UpperCaseSimpleStr('OK_123`"'), 'UpperCaseSimpleStr 4');
50
51 ok(!is_LowerCaseStr('NOTOK'), 'LowerCaseStr');
52 ok(is_LowerCaseStr("ok\nok"), 'LowerCaseStr 2');
53 ok(!is_LowerCaseStr('NOTOK_123`"'), 'LowerCaseStr 3');
54 ok(is_LowerCaseStr("ok\n_123`'"), 'LowerCaseStr 4');
55
56 ok(!is_UpperCaseStr('notok'), 'UpperCaseStr');
57 ok(is_UpperCaseStr("OK\nOK"), 'UpperCaseStr 2');
58 ok(!is_UpperCaseStr('notok_123`"'), 'UpperCaseStr 3');
59 ok(is_UpperCaseStr("OK\n_123`'"), 'UpperCaseStr 4');
60
61 ok(is_NumericCode('032'),  'NumericCode lives');
62 ok(!is_NumericCode('abc'),  'NumericCode dies' );
63 ok(!is_NumericCode('x18'),  'mixed NumericCode dies');
64
65 done_testing;