add WebGUI::GUID and make WebGUI::Session::Id a wrapper around that

This commit is contained in:
Graham Knop 2010-11-19 18:32:39 -06:00
parent cd0986ecdf
commit e71e95544f
3 changed files with 158 additions and 138 deletions

View file

@ -50,23 +50,27 @@ my @testSets = (
my $session = WebGUI::Test->session;
plan tests => scalar(@testSets) + 6;
# generate
my $generateId = $session->id->generate();
is(length($generateId), 22, "generate() - length of 22 characters");
my @uniqueIds;
my $isUnique = 1;
my $isValid = 1;
for (1..2000) {
last unless $isUnique;
my $id = $session->id->generate();
$isUnique = ($isUnique ? ! ($id ~~ @uniqueIds) : 0);
$isValid = ($isValid ? $session->id->valid($id) : 0);
push(@uniqueIds,$id);
my %uniqueIds;
GEN_LOOP: {
for (1..2000) {
my $id = $session->id->generate();
if (! $session->id->valid($id)) {
fail "GUID $id is valid";
last GEN_LOOP;
}
elsif ($uniqueIds{$id}) {
fail "GUID $id is unique";
last GEN_LOOP;
}
$uniqueIds{$id} = 1;
}
pass "All GUIDs valid";
pass "All GUIDs unique";
}
ok($isUnique, "generate() - unique");
ok($isValid, "generate() - valid id generated");
foreach my $testSet (@testSets) {
is($session->id->valid($testSet->{guid}), $testSet->{valid}, $testSet->{comment});
@ -80,3 +84,6 @@ is($session->id->fromHex('c2369b66c28e6fb90105288eddb430cc'), 'wjabZsKOb7kBBSiO3
my $re = $session->id->getValidator;
is( ref $re, 'Regexp', 'getValidator returns a regexp object');
done_testing;