Cleaned test scripts to be (nearly?) atomic
[idzebra-moved-to-github.git] / perl / t / 03_record_update.t
1 #!perl
2 # =============================================================================
3 # $Id: 03_record_update.t,v 1.10 2004-09-15 14:11:06 heikki Exp $
4 #
5 # Perl API header
6 # =============================================================================
7 BEGIN {
8     if ($ENV{PERL_CORE}) {
9         chdir 't' if -d 't';
10     }
11     unshift (@INC,'demo','blib/lib','blib/arch');
12 }
13
14 use strict;
15 use warnings;
16
17 use Test::More tests => 15;
18
19 # ----------------------------------------------------------------------------
20 # Session opening and closing
21 BEGIN {
22     use_ok('IDZebra');
23     unlink("test03.log");
24     IDZebra::logFile("test03.log");
25     use_ok('IDZebra::Session'); 
26     use_ok('pod');
27 }
28
29
30 # ----------------------------------------------------------------------------
31 # Session opening and closing
32 my $sess = IDZebra::Session->open(configFile => 'demo/zebra.cfg',
33                                   groupName => 'demo2',
34                                   shadow    => 1);
35 isa_ok($sess,"IDZebra::Session");
36
37 # ----------------------------------------------------------------------------
38 # per record update
39 my $rec1=`cat lib/IDZebra/Data1.pm`;
40 my $rec2=`cat lib/IDZebra/Filter.pm`;
41 my $rec3=`cat lib/IDZebra/Session.pm`;
42
43 my ($sysno, $stat, $ret);
44
45 $sess->init;
46 $sess->databases('demo1');
47
48 $sess->begin_trans;
49
50 ($ret,$sysno) = $sess->insert_record(data       => $rec1,
51                               recordType => 'grs.perl.pod',
52                               );
53
54 ok(($ret == 0),"Must return ret=0 (OK)");
55
56 $stat = $sess->end_trans;
57 ok(($stat->{inserted} == 1), "Inserted 1 records");
58
59 $sess->begin_trans;
60 ($ret,$sysno) = $sess->insert_record(data       => $rec2,
61                               recordType => 'grs.perl.pod',
62                               );
63 ok(($ret == 0),"Insert record ok");
64
65 $stat = $sess->end_trans;
66 ok(($stat->{inserted} == 1), "Inserted 1 records");
67
68
69 $sess->begin_trans;
70 ($ret,$sysno) = $sess->update_record(data       => $rec3,
71                               recordType => 'grs.perl.pod',
72                               sysno => $sysno,
73                               );
74
75 ok(($ret == 0),"update record ok");
76
77
78 $stat = $sess->end_trans;
79 ok(($stat->{inserted} == 0), "not inserted");
80 ok(($stat->{updated} == 1), "updated ok");
81 $sess->commit;
82
83 $sess->begin_trans;
84 #print STDERR "\nAbout to call delete. sysno=$sysno \n"; #!!!
85 ($ret,$sysno) = $sess->delete_record( data       => $rec3,
86                               sysno => $sysno,
87                               recordType => 'grs.perl.pod',
88                               );
89 ok(($ret == 0),"delete record ok");
90
91 #print STDERR "\nafter delete ret=$ret sysno=$sysno \n"; #!!!
92
93 $stat = $sess->end_trans;
94 ok(($stat->{inserted} == 0), "not inserted");
95 ok(($stat->{updated} == 0), "updated ok");
96 ok(($stat->{deleted} == 1), "deleted ok");
97 $sess->commit;
98
99
100
101 $sess->close;