# -*-perl-*-
# $Id: 03_uuid_key.t,v 3.2 2004/02/26 02:02:30 lachoy Exp $
use strict;
{
require Test::More;
# Check to see if Data::UUID is installed
eval { require Data::UUID };
if ( $@ ) {
Test::More->import( skip_all => 'Data::UUID is not installed' );
}
Test::More->import( tests => 6 );
do "t/config.pl";
my %config = (
test => {
class => 'LoopbackTest',
isa => [ qw( SPOPS::Key::UUID SPOPS::Loopback ) ],
field => [ qw( id_field field_name ) ],
id_field => 'id_field',
},
);
# Create our test class using the loopback
require_ok( 'SPOPS::Initialize' );
my $class_init_list = eval { SPOPS::Initialize->process({ config => \%config }) };
ok( ! $@, "Initialize process run $@" );
is( $class_init_list->[0], 'LoopbackTest', 'Loopback initialized' );
# Create an object and save it, checking to see if {id_field} was
# generated by SPOPS::Key::UUID
my $item = eval { LoopbackTest->new };
ok( ! $@, "Create object" );
eval { $item->save };
$item->save;
ok( $item->{id_field}, "UUID generate on save()" );
# Now just call it directly and ensure they're unique
my %track = ();
for ( 1..100 ) {
my ( $new_uuid, $n ) = SPOPS::Key::UUID->pre_fetch_id;
$track{ $new_uuid }++;
}
is( scalar keys %track, 100, "Unique keys generated" );
}