1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
use strict;
use warnings;
use Test::More;
use Cepis;
for my $value ( '01001000', '01001-000', ' 01001-000 ', '01001.000' ) {
is( Cepis::normalize_cep($value), '01001000', "'$value' normalises" );
}
for my $value ( '', '123', '0100100a', '010010000', 'abcdefgh', '0100 1000x' ) {
my $ok = eval { Cepis::normalize_cep($value); 1 };
ok( !$ok, "'$value' is rejected" );
isa_ok( $@, 'Cepis::Error::InvalidCEP' );
}
for my $value ( undef, [], {}, \'x' ) {
my $ok = eval { Cepis::normalize_cep($value); 1 };
ok( !$ok, 'a non-string is rejected' );
isa_ok( $@, 'Cepis::Error::InvalidCEP' );
}
my $ok = eval { Cepis::normalize_cep('123'); 1 };
ok( !$ok, 'malformed CEP throws' );
ok( ref $@ && $@->isa('Cepis::Error'), 'one isa test catches everything' );
like( "$@", qr/8 digits/, 'the error stringifies to its message' );
is( Cepis::Client::normalize_cep('01001-000'),
'01001000', 'the function is also reachable on Cepis::Client' );
done_testing();
|