X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=t%2F13-resultset.t;h=6a5cda7ee5bc99a7dd5258ed69da0145dc17037a;hb=52f0d52f8f3c183d567856bead4edd35fa976bf9;hp=773a99e1dad2448e22d07c1c39aee353d13ecb15;hpb=eceed15ee929ec788b6a1f109d8b464b774578a2;p=ZOOM-Perl-moved-to-github.git diff --git a/t/13-resultset.t b/t/13-resultset.t index 773a99e..6a5cda7 100644 --- a/t/13-resultset.t +++ b/t/13-resultset.t @@ -1,11 +1,11 @@ -# $Id: 13-resultset.t,v 1.2 2005-11-02 17:24:27 mike Exp $ +# $Id: 13-resultset.t,v 1.6 2005-11-07 15:48:21 mike Exp $ # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl 13-resultset.t' use strict; use warnings; -use Test::More tests => 14; +use Test::More tests => 23; BEGIN { use_ok('Net::Z3950::ZOOM') }; my($errcode, $errmsg, $addinfo) = (undef, "dummy", "dummy"); @@ -39,6 +39,8 @@ ok(length($data2) < length($data1), "re-fetched record is brief, old was full"); Net::Z3950::ZOOM::resultset_option_set($rs, preferredRecordSyntax => "xml"); $rec = Net::Z3950::ZOOM::resultset_record($rs, 0); +my $cloned = Net::Z3950::ZOOM::record_clone($rec); +ok(defined $cloned, "cloned record"); $data2 = Net::Z3950::ZOOM::record_get($rec, "render", $len); ok($data2 =~ //i, "option for XML syntax is honoured"); @@ -48,18 +50,34 @@ ok($data2 =~ /<title>/i, "option for XML syntax is honoured"); # ZOOM_resultset_cache_reset(), which presumably empties it. # $rec = Net::Z3950::ZOOM::resultset_record_immediate($rs, 0); -ok(defined $rec, "prefetched record obtained with *_immediate()"); +ok(defined $rec, "prefetched record obtained with _immediate()"); my $data3 = Net::Z3950::ZOOM::record_get($rec, "render", $len); -ok($data3 eq $data2, "*_immediate record renders as expected"); +ok($data3 eq $data2, "_immediate record renders as expected"); $rec = Net::Z3950::ZOOM::resultset_record_immediate($rs, 1); -ok(!defined $rec, "non-prefetched record obtained with *_immediate()"); +ok(!defined $rec, "non-prefetched record obtained with _immediate()"); Net::Z3950::ZOOM::resultset_cache_reset($rs); $rec = Net::Z3950::ZOOM::resultset_record_immediate($rs, 0); -ok(!defined $rec, "*_immediate(0) fails after cache reset"); +ok(!defined $rec, "_immediate(0) fails after cache reset"); # Fill both cache slots, but with no record array -#Net::Z3950::ZOOM::resultset_records($rs, [ $rec ], 0, 1); +my $tmp = Net::Z3950::ZOOM::resultset_records($rs, 0, 2, 0); +ok(!defined $tmp, "resultset_records() returns undef as expected"); +$rec = Net::Z3950::ZOOM::resultset_record_immediate($rs, 0); +ok(defined $rec, "_immediate(0) ok after resultset_records()"); +# Fetch all records at once using records() +$tmp = Net::Z3950::ZOOM::resultset_records($rs, 0, 2, 1); +ok(@$tmp == 2, "resultset_records() returned two records"); +$data3 = Net::Z3950::ZOOM::record_get($tmp->[0], "render", $len); +ok($data3 eq $data2, "record returned from resultset_records() renders as expected"); +$rec = Net::Z3950::ZOOM::resultset_record_immediate($rs, 1); +ok(defined $rec, "_immediate(1) ok after resultset_records()"); Net::Z3950::ZOOM::resultset_destroy($rs); ok(1, "destroyed result-set"); Net::Z3950::ZOOM::connection_destroy($conn); ok(1, "destroyed connection"); + +$data3 = Net::Z3950::ZOOM::record_get($cloned, "render", $len); +ok(1, "rendered cloned record after its result-set was destroyed"); +ok($data3 eq $data2, "render of clone as expected"); +Net::Z3950::ZOOM::record_destroy($cloned); +ok(1, "destroyed cloned record");