X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=t%2F13-resultset.t;h=b3e622590d8aa9cfe5a9c86bb1a03267d150b5f8;hb=87c72eaf97a3dbf51a93dab782c2909539addc48;hp=5c771f186c225f772ed37d97a09abb2a8e42ae3a;hpb=936c86478d4b955b3da078d52b3693622f0bd183;p=ZOOM-Perl-moved-to-github.git diff --git a/t/13-resultset.t b/t/13-resultset.t index 5c771f1..b3e6225 100644 --- a/t/13-resultset.t +++ b/t/13-resultset.t @@ -1,11 +1,9 @@ -# $Id: 13-resultset.t,v 1.8 2006-11-02 17:48:26 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 => 23; +use Test::More tests => 24; BEGIN { use_ok('Net::Z3950::ZOOM') }; my($errcode, $errmsg, $addinfo) = (undef, "dummy", "dummy"); @@ -21,27 +19,32 @@ $errcode = Net::Z3950::ZOOM::connection_error($conn, $errmsg, $addinfo); ok($errcode == 0, "search for '$query'"); ok(Net::Z3950::ZOOM::resultset_size($rs) == 2, "found 2 records"); -my $syntax = "usmarc"; +my $syntax = "canmarc"; Net::Z3950::ZOOM::resultset_option_set($rs, preferredRecordSyntax => $syntax); my $val = Net::Z3950::ZOOM::resultset_option_get($rs, "preferredRecordSyntax"); ok($val eq $syntax, "preferred record syntax set to '$val'"); my $rec = Net::Z3950::ZOOM::resultset_record($rs, 0); -my $len = 0; -my $data1 = Net::Z3950::ZOOM::record_get($rec, "render", $len); +my $diagset = ""; +$errcode = Net::Z3950::ZOOM::record_error($rec, $errmsg, $addinfo, $diagset); +ok($errcode == 238, "can't fetch CANMARC ($errmsg)"); + +Net::Z3950::ZOOM::resultset_option_set($rs, preferredRecordSyntax => "usmarc"); +$rec = Net::Z3950::ZOOM::resultset_record($rs, 0); +my $data1 = Net::Z3950::ZOOM::record_get($rec, "render"); Net::Z3950::ZOOM::resultset_option_set($rs, elementSetName => "b"); -my $data2 = Net::Z3950::ZOOM::record_get($rec, "render", $len); +my $data2 = Net::Z3950::ZOOM::record_get($rec, "render"); ok($data2 eq $data1, "record doesn't know about RS options"); # Now re-fetch record from result-set with new option $rec = Net::Z3950::ZOOM::resultset_record($rs, 0); -$data2 = Net::Z3950::ZOOM::record_get($rec, "render", $len); +$data2 = Net::Z3950::ZOOM::record_get($rec, "render"); 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); +$data2 = Net::Z3950::ZOOM::record_get($rec, "render"); ok($data2 =~ //i, "option for XML syntax is honoured"); # Now we test ZOOM_resultset_record_immediate(), which should only @@ -51,7 +54,7 @@ ok($data2 =~ /<title>/i, "option for XML syntax is honoured"); # $rec = Net::Z3950::ZOOM::resultset_record_immediate($rs, 0); ok(defined $rec, "prefetched record obtained with _immediate()"); -my $data3 = Net::Z3950::ZOOM::record_get($rec, "render", $len); +my $data3 = Net::Z3950::ZOOM::record_get($rec, "render"); 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()"); @@ -66,7 +69,7 @@ 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); +$data3 = Net::Z3950::ZOOM::record_get($tmp->[0], "render"); 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()"); @@ -76,7 +79,7 @@ ok(1, "destroyed result-set"); Net::Z3950::ZOOM::connection_destroy($conn); ok(1, "destroyed connection"); -$data3 = Net::Z3950::ZOOM::record_get($cloned, "render", $len); +$data3 = Net::Z3950::ZOOM::record_get($cloned, "render"); 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);