X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=perl%2Ft%2F03_record_update.t;h=9742fc7bdc61685d03f00787f7dcee6be927d1a3;hb=b5eb8cd7ae4134d915ed8b4aec25ab90c8bd0dcb;hp=ae5f865b4aa4e4c477a06ce931c26594332a0d67;hpb=c45742c694d4fa704d4282ada62c7f46c69fea88;p=idzebra-moved-to-github.git diff --git a/perl/t/03_record_update.t b/perl/t/03_record_update.t index ae5f865..9742fc7 100644 --- a/perl/t/03_record_update.t +++ b/perl/t/03_record_update.t @@ -1,6 +1,6 @@ #!perl # ============================================================================= -# $Id: 03_record_update.t,v 1.2 2003-03-05 13:55:22 pop Exp $ +# $Id: 03_record_update.t,v 1.7 2004-07-28 08:15:47 adam Exp $ # # Perl API header # ============================================================================= @@ -8,19 +8,20 @@ BEGIN { if ($ENV{PERL_CORE}) { chdir 't' if -d 't'; } - push (@INC,'demo','blib/lib','blib/arch'); + unshift (@INC,'demo','blib/lib','blib/arch'); } use strict; use warnings; -use Test::More tests => 7; +use Test::More tests => 18; # ---------------------------------------------------------------------------- # Session opening and closing BEGIN { use_ok('IDZebra'); - IDZebra::logFile("test.log"); + unlink("test03.log"); + IDZebra::logFile("test03.log"); use_ok('IDZebra::Session'); use_ok('pod'); } @@ -37,9 +38,12 @@ isa_ok($sess,"IDZebra::Session"); # per record update my $rec1=`cat lib/IDZebra/Data1.pm`; my $rec2=`cat lib/IDZebra/Filter.pm`; +my $rec3=`cat lib/IDZebra/Session.pm`; my ($sysno, $stat); +# ADAM: we must set database separately (can't be set from group) +$sess->databases('demo1'); $sess->begin_trans; $sysno = $sess->update_record(data => $rec1, recordType => 'grs.perl.pod', @@ -57,15 +61,83 @@ $stat = $sess->end_trans; ok(($stat->{deleted} == 1), "Deleted 1 records"); $sess->begin_trans; -$sysno = $sess->update_record(data => $rec2, - recordType => 'grs.perl.pod', - groupName => "demo1", - ); +$sysno = $sess->insert_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); $stat = $sess->end_trans; ok(($stat->{inserted} == 1), "Inserted 1 records"); +ok(($sysno > 0),"Inserted record got valid sysno"); +$sess->begin_trans; +$sysno = $sess->insert_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); +$stat = $sess->end_trans; +ok(($stat->{inserted} == 0), "Inserted 0 records"); +ok(($stat->{updated} == 0), "Updated 0 records"); +ok(($sysno < 0),"Inserted record got invalid sysno"); +$sess->begin_trans; +my $sysno1 = $sess->update_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); + +my $sysno2 = $sess->update_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); + +$stat = $sess->end_trans; +ok(($stat->{inserted} == 0), "Inserted 0 records"); +ok(($stat->{updated} == 1), "Updated $stat->{updated} records"); +ok(($sysno1 > 0),"Updated record got valid sysno"); +ok(($sysno2 < 0),"Unupdated record got invalid sysno"); + +$sess->begin_trans; +$sysno = $sess->delete_record(data => $rec3, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); +$stat = $sess->end_trans; + + +$sess->begin_trans; +$sysno = $sess->update_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); + +foreach my $i (1..100) { + $sysno = $sess->update_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + force => 1, + ); +} +foreach my $i (1..10) { + $sysno = $sess->update_record(data => $rec3, + recordType => 'grs.perl.pod', + groupName => "demo1", + force => 1, + ); +} +foreach my $i (1..10) { + $sysno = $sess->update_record(data => $rec2, + recordType => 'grs.perl.pod', + groupName => "demo1", + force => 1, + ); +} + + +$stat = $sess->end_trans; +ok(($stat->{inserted} == 1), "Inserted $stat->{inserted} records"); +ok(($stat->{updated} == 120), "Updated $stat->{updated} records"); +ok(($sysno > 0),"Inserted got valid sysno"); # ---------------------------------------------------------------------------- # Close session