X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=perl%2Ft%2F08_scan.t;h=d447c21b139e51108bd9868c69b0236827e4295c;hb=8801da78027ff39a9ac158d0a982094d42e2c22d;hp=8c345e9528641f0b57c7bdc6741d6d3caecda25f;hpb=4a3a97df9d47b8d099e403308f8015f130366994;p=idzebra-moved-to-github.git diff --git a/perl/t/08_scan.t b/perl/t/08_scan.t index 8c345e9..d447c21 100644 --- a/perl/t/08_scan.t +++ b/perl/t/08_scan.t @@ -1,6 +1,6 @@ #!perl # ============================================================================= -# $Id: 08_scan.t,v 1.2 2004-07-28 08:15:47 adam Exp $ +# $Id: 08_scan.t,v 1.4 2004-09-20 15:59:48 heikki Exp $ # # Perl API header # ============================================================================= @@ -14,7 +14,8 @@ BEGIN { use strict; use warnings; -use Test::More tests => 17; +use Test::More tests => 32; +#use Test::More skip_all => "Something rotten with scan."; # ---------------------------------------------------------------------------- # Session opening and closing @@ -22,7 +23,7 @@ BEGIN { use IDZebra; unlink("test08.log"); IDZebra::logFile("test08.log"); -# IDZebra::logLevel(15); + IDZebra::logLevel(15); use_ok('IDZebra::Session'); use_ok('pod'); } @@ -33,16 +34,57 @@ BEGIN { my $sess = IDZebra::Session->open(configFile => 'demo/zebra.cfg', groupName => 'demo1'); +# ---------------------------------------------------------------------------- +# Insert some test data +my $ret; +my $sysno; +my $F; +my $filecount=0; +$sess->init; + +$sess->begin_trans; +$sess->databases('demo1', 'demo2'); +for $F () +{ + ($ret,$sysno)=$sess->insert_record (file=>$F, recordType => 'grs.perl.pod'); + ok( $ret==0, "inserted $F"); + $filecount++; +} +$ret=$sess->end_trans; +ok($filecount>0,"Inserted files"); +is($ret->{inserted},$filecount, "Inserted all"); $sess->databases('demo1'); -our $filecount = 8; # ----------------------------------------------------------------------------- -# Scan titles in multiple databases +# Scan titles in a single (default) database +$sess->begin_trans; +IDZebra::logMsg(2,"t08: Starting to scan"); +my $sl0 = $sess->scan(expression => "\@attr 1=4 \@attr 6=1 a"); +IDZebra::logMsg(2,"t08: scan done"); + +my @ent=$sl0->entries(position => 1, + num_entries => 3); +my $nent=@ent; +is ($nent,3,"got 3 entries"); + +my $cnt= $sl0->num_entries; + +is($cnt,3,"num_entries"); +is($ent[0]->term(),"a", "first entry"); +is($ent[1]->term(),"an", "second entry"); +is($ent[2]->term(),"and", "third entry"); + +$sess->end_trans; +# ----------------------------------------------------------------------------- +# Scan titles in a named database my $sl1 = $sess->scan(expression => "\@attr 1=4 \@attr 6=2 a", - databases => [qw(demo1 demo2)]); + databases => [qw(demo1)]); +&test_list($sl1,$filecount, $filecount,1); + +# FIXME - Should test multiple databases, but I can't get that to work + -&test_list($sl1,$filecount, $filecount*2,1); # ----------------------------------------------------------------------------- # Scan titles in a single and default database my $sl2 = $sess->scan(expression => "\@attr 1=4 \@attr 6=2 a"); @@ -89,7 +131,7 @@ sub test_list { ok (($sl->errCode == 0),"scan successfull"); ok (($sl->num_entries == $ecount), "number of entries is ".$sl->num_entries); - ok (($count == $sl->num_entries),"fetched $count entries"); + is ($count,$sl->num_entries,"fetched $count entries"); my $occcount=0; my $posok = 1; @@ -100,6 +142,6 @@ sub test_list { $i++; } - ok ($occcount == $occ,"occurrences: $occcount"); + is ($occcount, $occ,"occurrences: $occcount"); ok (($posok),"position of each term"); }