use strict;
use warnings;
-use Test::More tests => 14;
+use Test::More tests => 25;
use Test::Fatal;
+use Test::Exception;
{
package FooTest;
use Moose;
use MooseX::Types::Common::String (
- qw(SimpleStr NonEmptySimpleStr Password StrongPassword NonEmptyStr),
+ qw(SimpleStr
+ NonEmptySimpleStr
+ LowerCaseSimpleStr
+ UpperCaseSimpleStr
+ Password
+ StrongPassword
+ NonEmptyStr
+ LowerCaseStr
+ UpperCaseStr
+ NumericCode
+ ),
);
- has simplestr => ( is => 'rw', isa => SimpleStr);
- has nestr => ( is => 'rw', isa => NonEmptyStr);
- has nesimplestr => ( is => 'rw', isa => NonEmptySimpleStr);
- has password => ( is => 'rw', isa => Password);
- has strongpassword => ( is => 'rw', isa => StrongPassword);
+ has simplestr => ( is => 'rw', isa => SimpleStr );
+ has nestr => ( is => 'rw', isa => NonEmptyStr );
+ has nesimplestr => ( is => 'rw', isa => NonEmptySimpleStr );
+ has lcsimplestr => ( is => 'rw', isa => LowerCaseSimpleStr );
+ has ucsimplestr => ( is => 'rw', isa => UpperCaseSimpleStr );
+ has password => ( is => 'rw', isa => Password );
+ has strongpassword => ( is => 'rw', isa => StrongPassword );
+ has lowercasestr => ( is => 'rw', isa => LowerCaseStr );
+ has uppercasestr => ( is => 'rw', isa => UpperCaseStr );
+ has numericcode => ( is => 'rw', isa => NumericCode );
}
my $ins = FooTest->new;
isnt(exception { $ins->strongpassword('notokay') }, undef, 'StrongPassword');
is(exception { $ins->strongpassword('83773r_ch01c3') }, undef, 'StrongPassword 2');
+
+isnt(exception { $ins->lcsimplestr('NOTOK') }, undef, 'LowerCaseSimpleStr');
+is(exception { $ins->lcsimplestr('ok') }, undef, 'LowerCaseSimpleStr 2');
+
+isnt(exception { $ins->ucsimplestr('notok') }, undef, 'UpperCaseSimpleStr');
+is(exception { $ins->ucsimplestr('OK') }, undef, 'UpperCaseSimpleStr 2');
+
+isnt(exception { $ins->lowercasestr('NOTOK') }, undef, 'LowerCaseStr');
+is(exception { $ins->lowercasestr('ok') }, undef, 'LowerCaseStr 2');
+
+isnt(exception { $ins->uppercasestr('notok') }, undef, 'UpperCaseStr');
+is(exception { $ins->uppercasestr('OK') }, undef, 'UpperCaseStr 2');
+
+
+is( exception { $ins->numericcode('032') }, undef, 'NumericCode lives');
+isnt( exception { $ins->numericcode('abc') }, undef, 'NumericCode dies' );
+isnt( exception { $ins->numericcode('x18') }, undef, 'mixed NumericCode dies');