X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=perl%2Ftest.pl;h=3eb490fe87541348e90de5beda481396763154ea;hb=0a5aa3b65fe14789bcada545a0e399545725d1ff;hp=46144e59baec3e8fecef29aad20f2ad53743e5db;hpb=35313087050bd73d0a749f8855287009710b9250;p=idzebra-moved-to-github.git diff --git a/perl/test.pl b/perl/test.pl index 46144e5..3eb490f 100755 --- a/perl/test.pl +++ b/perl/test.pl @@ -3,111 +3,107 @@ BEGIN { push (@INC,'demo','blib/lib','blib/arch'); } -use Test::More tests => 3; -use Data::Dumper; -use IDZebra::Logger qw(:flags :calls); -use IDZebra::Repository; + use pod; +use Test::More tests => 15; + BEGIN { - use_ok('IDZebra'); - use_ok('IDZebra::Service'); - use_ok('IDZebra::Data1'); + use_ok('IDZebra::Session'); } -#Zebra::API::LogFile("a.log"); +IDZebra::logFile("test.log"); + +#IDZebra::logLevel(15); +#IDZebra::init(); -#my $arr = IDZebra::give_me_array("strucc",6); +# ---------------------------------------------------------------------------- +# Session opening and closing +my $sess = IDZebra::Session->new(configFile => 'demo/zebra.cfg'); +isa_ok($sess,"IDZebra::Session"); -#print "$arr\n"; +$sess->open(); +ok(defined($sess->{zh}), "Zebra handle opened"); +$sess->close(); +ok(!defined($sess->{zh}), "Zebra handle closed"); -#for (@arr) {print "$_\n";} -#exit; +my $sess = IDZebra::Session->open(configFile => 'demo/zebra.cfg', + groupName => 'demo1'); +isa_ok($sess,"IDZebra::Session"); +ok(defined($sess->{zh}), "Zebra handle opened"); -IDZebra::init(); +# ---------------------------------------------------------------------------- +# Record group tests -chdir('demo'); +ok(($sess->group->{databaseName} eq "demo1"),"Record group is selected"); -my $service = IDZebra::Service->start('zebra.cfg'); -my $sess = $service->openSession; -#my $sess = $service->createSession; -#$sess->open; -#my $session = IDZebra::open($service); -#IDZebra::close($session); -#IDZebra::stop($service); -#$sess->close; +$sess->group(groupName => 'demo2'); -my $rec1=`cat ../lib/IDZebra/Data1.pm`; -my $rec2=`cat ../lib/IDZebra/Filter.pm`; +ok(($sess->group->{databaseName} eq "demo2"),"Record group is selected"); -#$sess->Repository->readConfig; -$sess->Repository->readConfig("","pm"); +# ---------------------------------------------------------------------------- +# init repository +$sess->init(); +# ---------------------------------------------------------------------------- +# repository upadte $sess->begin_trans; +$sess->update(path => 'lib'); +my $stat = $sess->end_trans; -#$sess->Repository->update(databaseName => 'Default', -# path => '/usr/local/work/cvs/zebra/perl/lib'); -my $s1 = $sess->Repository->update_record($rec1,0,"","Data1.pm"); -my $s2 = $sess->Repository->update_record($rec2,0,"","Filter.pm"); -print STDERR "s1:$s1, s2:$s2\n"; +ok(($stat->{inserted} == 6), "Inserted 6 records"); -$sess->end_trans; -#$sess->begin_trans; -#$sess->Repository->delete_record($rec1,0,"","Data1.pm"); -#$sess->end_trans; +$sess->begin_trans; +$sess->update(groupName => 'demo1', + path => 'lib'); -$sess->select_databases('Default'); -$sess->begin_read; -#print STDERR "Hits:", $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_1'), "\n"; -#print STDERR "Hits:", $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_1'), "\n"; +my $stat = $sess->end_trans; +ok(($stat->{updated} == 6), "Updated 6 records"); -my $rs1 = $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_1'); -print STDERR "Rs1 '$rs1->{name}' has $rs1->{recordCount} hits\n"; +$sess->begin_trans; +$sess->delete(groupName => 'demo1', + path => 'lib'); +my $stat = $sess->end_trans; +ok(($stat->{deleted} == 6), "Deleted 6 records"); -my $rs2 = $sess->search_pqf('@or @attr 1=4 Filter @attr 1=4 Data1','test_2'); -#print STDERR "Rs2 '$rs2->{name}' has $rs2->{recordCount} hits\n"; +$sess->begin_trans; +$sess->update(groupName => 'demo1', + path => 'lib'); -my $rs3 = $sess->sortResultsets ('1=4 id','test_3',($rs1)); -#print STDERR "Rs3 '$rs3->{name}' has $rs3->{recordCount} hits\n"; -#print STDERR "Rs3 '$rs3->{name}' error $rs3->{errCode}: $rs3->{errString}\n"; +my $stat = $sess->end_trans; +ok(($stat->{inserted} == 6), "Inserted 6 records"); -$rs1->sort('1=4 id'); +ok(($sess->group->{databaseName} eq "demo2"),"Original group is selected"); -#for ($i=1; $i<100000; $i++) { -my @recs1 = $rs1->records(from=>1,to=>2); -#} -#my $res=$sess->retrieve_records('test_1',1,1); +# ---------------------------------------------------------------------------- +# per record update +my $rec1=`cat lib/IDZebra/Data1.pm`; +my $rec2=`cat lib/IDZebra/Filter.pm`; -$sess->end_read; +$sess->begin_trans; +my $s1=$sess->update_record(data => $rec1, + recordType => 'grs.perl.pod', + groupName => "demo1", + ); -#$sess->commit; -#IDZebra::describe_recordGroup($rep->{rg}); -#$rep->update; -# print "HOW did we got back???\n"; -$sess->close; -$service->stop; - -foreach my $rec (@recs1) { - foreach my $line (split (/\n/, $rec->{buf})) { - if ($line =~ /^package/) { print STDERR "$line\n";} - } -} +#my $s2=$sess->update_record(data => $rec2); +# recordType => "grs.perl.pod"); -#$rep->{groupName} = "Strucc"; -#$rep->describe(); - -sub test_data1 { - $m = IDZebra::nmem_create(); - my $d1=IDZebra::Data1->new($m,$IDZebra::DATA1_FLAG_XML); - my $root=$d1->mk_root('strucc'); - my $tag1 = $d1->mk_tag($root,'emu',('asd' => 1, - 'bsd' => 2)); - my $tag2 = $d1->mk_tag($root,'emu'); - $d1->pr_tree($root); - IDZebra::nmem_destroy($m); - $d1->DESTROY(); -} -IDZebra::DESTROY; +#my $s3=$sess->update_record(file => "lib/IDZebra/Data1.pm"); + + + +my $stat = $sess->end_trans; +ok(($stat->{updated} == 1), "Updated 1 records"); + +#$sess->cqlmap("cql.map"); +#print STDERR $sess->cql2pqf("job.id <= 5"); +#print STDERR $sess->cql2pqf("job.id=5 and dc.title=computer"); +#print STDERR "RES:$res\n"; + +$sess->close; +ok(!defined($sess->{zh}), "Zebra handle closed"); +