Tuned to DEBIAN Stable pkgs
[idzebra-moved-to-github.git] / perl / t / 03_record_update.t
1 #!perl
2 # =============================================================================
3 # $Id: 03_record_update.t,v 1.4 2003-04-15 20:55:14 pop 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 => 17;
18
19 # ----------------------------------------------------------------------------
20 # Session opening and closing
21 BEGIN {
22     use_ok('IDZebra');
23 #    IDZebra::logFile("test.log");
24     use_ok('IDZebra::Session'); 
25     use_ok('pod');
26 }
27
28
29 # ----------------------------------------------------------------------------
30 # Session opening and closing
31 my $sess = IDZebra::Session->open(configFile => 'demo/zebra.cfg',
32                                   groupName => 'demo2',
33                                   shadow    => 1);
34 isa_ok($sess,"IDZebra::Session");
35
36 # ----------------------------------------------------------------------------
37 # per record update
38 my $rec1=`cat lib/IDZebra/Data1.pm`;
39 my $rec2=`cat lib/IDZebra/Filter.pm`;
40 my $rec3=`cat lib/IDZebra/Session.pm`;
41
42 # IDZebra::logLevel(15);
43
44 my ($sysno, $stat);
45
46 $sess->begin_trans;
47 $sysno = $sess->update_record(data       => $rec1,
48                               recordType => 'grs.perl.pod',
49                               groupName  => "demo1",
50                               );
51 $stat = $sess->end_trans;
52 ok(($stat->{updated} == 1), "Updated 1 records");
53
54 $sess->begin_trans;
55 $sysno = $sess->delete_record(data       => $rec2,
56                               recordType => 'grs.perl.pod',
57                               groupName  => "demo1",
58                               );
59 $stat = $sess->end_trans;
60 ok(($stat->{deleted} == 1), "Deleted 1 records");
61
62 $sess->begin_trans;
63 $sysno = $sess->insert_record(data       => $rec2,
64                               recordType => 'grs.perl.pod',
65                               groupName  => "demo1",
66                               );
67 $stat = $sess->end_trans;
68 ok(($stat->{inserted} == 1), "Inserted 1 records");
69 ok(($sysno > 0),"Inserted record got valid sysno");
70
71 $sess->begin_trans;
72 $sysno = $sess->insert_record(data       => $rec2,
73                               recordType => 'grs.perl.pod',
74                               groupName  => "demo1",
75                               );
76 $stat = $sess->end_trans;
77 ok(($stat->{inserted} == 0), "Inserted 0 records");
78 ok(($stat->{updated} == 0), "Updated 0 records");
79 ok(($sysno < 0),"Inserted record got invalid sysno");
80
81
82 $sess->begin_trans;
83 $sysno = $sess->update_record(data       => $rec2,
84                               recordType => 'grs.perl.pod',
85                               groupName  => "demo1",
86                               );
87
88 $sysno = $sess->update_record(data       => $rec2,
89                               recordType => 'grs.perl.pod',
90                               groupName  => "demo1",
91                               );
92
93 $stat = $sess->end_trans;
94 ok(($stat->{inserted} == 0), "Inserted 0 records");
95 ok(($stat->{updated} == 1), "Updated $stat->{updated} records");
96 ok(($sysno > 0),"Inserted got valid sysno");
97
98 $sess->begin_trans;
99 $sysno = $sess->delete_record(data       => $rec3,
100                               recordType => 'grs.perl.pod',
101                               groupName  => "demo1",
102                               );
103 $stat = $sess->end_trans;
104
105
106 $sess->begin_trans;
107 $sysno = $sess->update_record(data       => $rec2,
108                               recordType => 'grs.perl.pod',
109                               groupName  => "demo1",
110                               );
111
112 foreach my $i (1..100) {
113     $sysno = $sess->update_record(data       => $rec2,
114                                   recordType => 'grs.perl.pod',
115                                   groupName  => "demo1",
116                                   force      => 1,
117                                   );
118 }
119 foreach my $i (1..10) {
120     $sysno = $sess->update_record(data       => $rec3,
121                                   recordType => 'grs.perl.pod',
122                                   groupName  => "demo1",
123                                   force      => 1,
124                                   );
125 }
126 foreach my $i (1..10) {
127     $sysno = $sess->update_record(data       => $rec2,
128                                   recordType => 'grs.perl.pod',
129                                   groupName  => "demo1",
130                                   force      => 1,
131                                   );
132 }
133
134
135 $stat = $sess->end_trans;
136 ok(($stat->{inserted} == 1), "Inserted $stat->{inserted} records");
137 ok(($stat->{updated} == 120), "Updated $stat->{updated} records");
138 ok(($sysno > 0),"Inserted got valid sysno");
139
140 # ----------------------------------------------------------------------------
141 # Close session
142
143 $sess->commit;
144 $sess->close;