# -*-perl-*- # $Id: 04_random_key.t,v 3.1 2004/02/26 02:02:30 lachoy Exp $ use strict; use Test::More tests => 6; do "t/config.pl"; { my %config = ( test => { class => 'LoopbackTest', isa => [ qw( SPOPS::Key::Random SPOPS::Loopback ) ], field => [ qw( id_field field_name ) ], id_field => 'id_field', }, ); # Create our test class using the loopback # TEST: 1 require_ok( 'SPOPS::Initialize' ); # TEST: 2-3 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::Random # TEST: 4 my $item = eval { LoopbackTest->new }; ok( ! $@, "Create object" ); # TEST: 5 eval { $item->save }; $item->save; ok( $item->{id_field}, "Random key generate on save()" ); # Now just call it directly and ensure they're unique # TEST: 6 my %track = (); for ( 1..100 ) { my ( $new_key, $n ) = SPOPS::Key::Random->pre_fetch_id; $track{ $new_key }++; } is( scalar keys %track, 100, "Unique keys generated" ); }