|
Packit |
fc16e3 |
#!perl
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
use strict;
|
|
Packit |
fc16e3 |
use warnings;
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
use Test::More tests => 28;
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
BEGIN { use_ok('Data::UUID'); }
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
my $ug = Data::UUID->new;
|
|
Packit |
fc16e3 |
isa_ok($ug, 'Data::UUID');
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
ok(my $uuid1 = $ug->create(), "create a new uuid");
|
|
Packit |
fc16e3 |
ok(length($uuid1) eq 16, 'correct length of uuid');
|
|
Packit |
fc16e3 |
ok(my $uuid2 = $ug->to_hexstring($uuid1), "hexstringify it");
|
|
Packit |
fc16e3 |
ok(my $uuid3 = $ug->from_string($uuid2), "create a uuid from that string");
|
|
Packit |
fc16e3 |
ok(!$ug->compare($uuid1, $uuid3), "they compare as equal");
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
ok(my $uuid4 = $ug->to_b64string($uuid1), "get base64 string of original uuid");
|
|
Packit |
fc16e3 |
ok(my $uuid5 = $ug->to_b64string($uuid3), "get base64 string of from_string");
|
|
Packit |
fc16e3 |
is($uuid4, $uuid5, "those base64 strings are equal");
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
ok(my $uuid6 = $ug->from_b64string($uuid5), "make uuid from the base64 string");
|
|
Packit |
fc16e3 |
ok(!$ug->compare($uuid6,$uuid1), "and it compares at equal, too");
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
# some basic "all unique" tests
|
|
Packit |
fc16e3 |
my $HOW_MANY = 15;
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
my %uuids;
|
|
Packit |
fc16e3 |
$uuids{ $ug->to_b64string($ug->create) } = 1 for 1 .. ($HOW_MANY);
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
is(
|
|
Packit |
fc16e3 |
scalar keys %uuids,
|
|
Packit |
fc16e3 |
$HOW_MANY,
|
|
Packit |
fc16e3 |
"we get all unique UUIDs",
|
|
Packit |
fc16e3 |
);
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
for my $uuid (keys %uuids) {
|
|
Packit |
fc16e3 |
ok(
|
|
Packit |
fc16e3 |
index($uuid, "\n") == -1,
|
|
Packit |
fc16e3 |
"no carriage return in base64 version",
|
|
Packit |
fc16e3 |
);
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
|