summaryrefslogtreecommitdiffstats
path: root/t/01-normalize.t
diff options
context:
space:
mode:
authorMurilo Ijanc <[email protected]>2026-07-26 14:40:05 -0300
committerMurilo Ijanc <[email protected]>2026-07-26 14:40:05 -0300
commit0bc578d6d334c7f1ccaf329cd61bb8bce76b7f59 (patch)
tree86f73108f0432fd8330edcaab8b8ae7018322dee /t/01-normalize.t
downloadperl-6661cb35162c38099b86f248b938f5e4d4d11515.tar.gz
Initial importv0.1.0
Diffstat (limited to 't/01-normalize.t')
-rw-r--r--t/01-normalize.t32
1 files changed, 32 insertions, 0 deletions
diff --git a/t/01-normalize.t b/t/01-normalize.t
new file mode 100644
index 0000000..bf8a85f
--- /dev/null
+++ b/t/01-normalize.t
@@ -0,0 +1,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();