Create directories automatically
[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 $sess->begin_trans;
53 $sess->update(path      =>  'lib');
54 my $stat = $sess->end_trans;
55
56 ok(($stat->{inserted} == 6), "Inserted 6 records");
57
58 $sess->begin_trans;
59 $sess->update(groupName => 'demo1',
60               path      =>  'lib');
61
62 my $stat = $sess->end_trans;
63 ok(($stat->{updated} == 6), "Updated 6 records");
64
65 $sess->begin_trans;
66 $sess->delete(groupName => 'demo1',
67               path      =>  'lib');
68 my $stat = $sess->end_trans;
69 ok(($stat->{deleted} == 6), "Deleted 6 records");
70
71 $sess->begin_trans;
72 $sess->update(groupName => 'demo1',
73               path      =>  'lib');
74
75 my $stat = $sess->end_trans;
76 ok(($stat->{inserted} == 6), "Inserted 6 records");
77
78 ok(($sess->group->{databaseName} eq "demo2"),"Original group is selected");
79
80 # ----------------------------------------------------------------------------
81 # per record update
82 my $rec1=`cat lib/IDZebra/Data1.pm`;
83 my $rec2=`cat lib/IDZebra/Filter.pm`;
84
85 $sess->begin_trans;
86 my $s1=$sess->update_record(data       => $rec1,
87                             recordType => 'grs.perl.pod',
88                             groupName  => "demo1",
89                             );
90
91 #my $s2=$sess->update_record(data       => $rec2);
92 #                                       recordType => "grs.perl.pod");
93
94
95 #my $s3=$sess->update_record(file       => "lib/IDZebra/Data1.pm");
96
97
98
99 my $stat = $sess->end_trans;
100 ok(($stat->{updated} == 1), "Updated 1 records");
101
102 #$sess->cqlmap("cql.map");
103 #print STDERR $sess->cql2pqf("job.id <= 5");
104 #print STDERR $sess->cql2pqf("job.id=5 and dc.title=computer");
105 #print STDERR "RES:$res\n";
106
107 $sess->close;
108 ok(!defined($sess->{zh}), "Zebra handle closed");
109