#!perl
# =============================================================================
-# $Id: 07_sort.t,v 1.2 2004-07-28 08:15:47 adam Exp $
+# $Id: 07_sort.t,v 1.4 2004-09-16 15:07:55 heikki Exp $
#
# Perl API header
# =============================================================================
use strict;
use warnings;
-use Test::More tests => 14;
+use Test::More tests => 32;
# ----------------------------------------------------------------------------
# Session opening and closing
use IDZebra;
unlink("test07.log");
IDZebra::logFile("test07.log");
+# IDZebra::logLevel(0x4F);
# IDZebra::logLevel(15);
use_ok('IDZebra::Session');
use_ok('pod');
my $sess = IDZebra::Session->open(configFile => 'demo/zebra.cfg',
groupName => 'demo2');
# ----------------------------------------------------------------------------
-# search
+# Insert some test data
+my $ret;
+my $sysno;
+my $F;
+my $filecount=0;
+$sess->init;
+$sess->begin_trans;
+$sess->databases('demo1', 'demo2');
+$ret=$sess->end_trans;
+
+$sess->begin_trans;
+for $F (<lib/IDZebra/*.pm>)
+{
+ ($ret,$sysno)=$sess->insert_record (file=>$F, recordType => 'grs.perl.pod');
+ ok( $ret==0, "inserted $F");
+ #print STDERR "Inserted $F ok. ret=$ret sys=$sysno\n";
+ $filecount++;
+}
+$ret=$sess->end_trans;
+ok($filecount>0,"Inserted files");
+is($ret->{inserted},$filecount, "Inserted all");
+
# -----------------------------------------------------------------------------
# Search 1 database, retrieve records, sort "titles" locally (dangerous!)
# -----------------------------------------------------------------------------
# Sort descending, new rs
+#TODO: {
+# todo_skip "Sort into different rset crashes", 3;
my $rs2 = $rs1->sort('1=4 id');
$wasError = 0;
$sortError = 0;
-foreach my $rec ($rs1->records()) {
+foreach my $rec ($rs2->records()) {
if ($rec->{errCode}) { $wasError++; }
my ($title) = ($rec->buf =~ /\n\s*package\s+([a-zA-Z0-9:]+)\s*\;\s*\n/);
- if ($sortedi[$rs2->count - $rec->position] ne $title) { $sortError++; }
+ if ($sorted[$rs2->count - $rec->position] ne $title) { $sortError++; }
+ is ($title, $sorted[$rs2->count - $rec->position], "sort order $title");
}
-ok (($wasError == 0), "retrieval");
-ok (($sortError == 0), "sorting descending");
+is ($wasError,0 , "retrieval");
+is ($sortError, 0, "sorting descending");
+
+# } # end of SKIP
# -----------------------------------------------------------------------------
# Search + sort ascending