New cql map file to be used for testing
[idzebra-moved-to-github.git] / perl / test.pl
1 #!/usr/bin/perl
2
3 BEGIN {
4     push (@INC,'demo','blib/lib','blib/arch');
5 }
6
7 use pod;
8
9 use Test::More tests => 15;
10
11 BEGIN { 
12   use_ok('IDZebra::Session'); 
13 }
14
15 IDZebra::logFile("test.log");
16
17 #IDZebra::logLevel(15);
18
19 IDZebra::init();
20
21 # ----------------------------------------------------------------------------
22 # Session opening and closing
23 my $sess = IDZebra::Session->new(configFile => 'demo/zebra.cfg');
24 isa_ok($sess,"IDZebra::Session");
25
26 $sess->open();
27 ok(defined($sess->{zh}), "Zebra handle opened");
28 $sess->close();
29 ok(!defined($sess->{zh}), "Zebra handle closed");
30
31
32 my $sess = IDZebra::Session->open(configFile => 'demo/zebra.cfg',
33                                   groupName  => 'demo1');
34 isa_ok($sess,"IDZebra::Session");
35 ok(defined($sess->{zh}), "Zebra handle opened");
36
37 # ----------------------------------------------------------------------------
38 # Record group tests
39
40 ok(($sess->group->{databaseName} eq "demo1"),"Record group is selected");
41
42 $sess->group(groupName => 'demo2');
43
44 ok(($sess->group->{databaseName} eq "demo2"),"Record group is selected");
45
46 # ----------------------------------------------------------------------------
47 # init repository
48 $sess->init();
49
50 # ----------------------------------------------------------------------------
51 # repository upadte
52
53 our $filecount = 6;
54
55 $sess->begin_trans;
56 $sess->update(path      =>  'lib');
57 my $stat = $sess->end_trans;
58
59 ok(($stat->{inserted} == $filecount), 
60    "Inserted $stat->{inserted}/$filecount records");
61
62 $sess->begin_trans;
63 $sess->update(groupName => 'demo1',
64               path      =>  'lib');
65
66 my $stat = $sess->end_trans;
67 ok(($stat->{inserted} == $filecount), 
68    "Inserted $stat->{updated}/$filecount records");
69
70 $sess->begin_trans;
71 $sess->delete(groupName => 'demo1',
72               path      =>  'lib');
73 my $stat = $sess->end_trans;
74 ok(($stat->{deleted} == $filecount), 
75    "Deleted $stat->{deleted}/$filecount records");
76
77 $sess->begin_trans;
78 $sess->update(groupName => 'demo1',
79               path      =>  'lib');
80
81 my $stat = $sess->end_trans;
82 ok(($stat->{inserted} == $filecount), 
83    "Inserted $stat->{inserted}/$filecount records");
84
85 ok(($sess->group->{databaseName} eq "demo2"),"Original group is selected");
86
87 # ----------------------------------------------------------------------------
88 # per record update
89 my $rec1=`cat lib/IDZebra/Data1.pm`;
90 my $rec2=`cat lib/IDZebra/Filter.pm`;
91
92 $sess->begin_trans;
93 my $s1=$sess->update_record(data       => $rec2,
94                             recordType => 'grs.perl.pod',
95                             groupName  => "demo1",
96                             );
97 my $stat = $sess->end_trans;
98 ok(($stat->{updated} == 1), "Updated 1 records");
99
100 #exit;
101 # ----------------------------------------------------------------------------
102 # search
103 $sess->select_databases('demo2');
104 $sess->begin_read;
105 my $rs1 = $sess->search(cqlmap => 'demo/cql.map',
106                         cql    => 'IDZebra');
107
108 print STDERR "$rs1->{recordCount} hits.\n";
109
110 #my $s2=$sess->update_record(data       => $rec2);
111 #                                       recordType => "grs.perl.pod");
112
113
114 #my $s3=$sess->update_record(file       => "lib/IDZebra/Data1.pm");
115
116
117
118 #$sess->cqlmap("cql.map");
119 #print STDERR $sess->cql2pqf("job.id <= 5");
120 #print STDERR $sess->cql2pqf("job.id=5 and dc.title=computer");
121 #print STDERR "RES:$res\n";
122
123 $sess->close;
124 ok(!defined($sess->{zh}), "Zebra handle closed");
125