X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=t%2F12-query.t;h=459cbc913145b5b459c84882e5bdd3595e72e4ae;hb=9c7fc7a5f2424db4a5e2f770862de63376167171;hp=683f66540201e2726e47a5b2dae5a30120a55890;hpb=69c2b27429800bb127948acce58f56326ad87228;p=ZOOM-Perl-moved-to-github.git diff --git a/t/12-query.t b/t/12-query.t index 683f665..459cbc9 100644 --- a/t/12-query.t +++ b/t/12-query.t @@ -1,11 +1,11 @@ -# $Id: 12-query.t,v 1.4 2005-12-22 09:16:43 mike Exp $ +# $Id: 12-query.t,v 1.10 2006-11-03 09:50:58 mike Exp $ # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl 12-query.t' use strict; use warnings; -use Test::More tests => 32; +use Test::More tests => 41; BEGIN { use_ok('Net::Z3950::ZOOM') }; # Net::Z3950::ZOOM::yaz_log_init_level(Net::Z3950::ZOOM::yaz_log_mask_str("zoom")); @@ -46,7 +46,7 @@ ok(1, "destroyed complex query"); # no other uses of query objects -- but we need to establish a # connection for it to work on first. -my $host = "indexdata.com/gils"; +my $host = "z3950.indexdata.com/gils"; my $conn = Net::Z3950::ZOOM::connection_new($host, 0); my($errcode, $errmsg, $addinfo) = (undef, "dummy", "dummy"); $errcode = Net::Z3950::ZOOM::connection_error($conn, $errmsg, $addinfo); @@ -68,7 +68,12 @@ $q = Net::Z3950::ZOOM::query_create(); ok(defined $q, "create empty query"); $res = Net::Z3950::ZOOM::query_cql($q, 'title=utah and description=epicenter'); ok($res == 0, "valid CQL accepted"); -check_failure($conn, $q, 107, "Bib-1"); +my $rs = Net::Z3950::ZOOM::connection_search($conn, $q); +my $diagset = "dummy"; +$errcode = Net::Z3950::ZOOM::connection_error_x($conn, $errmsg, $addinfo, + $diagset); +ok($errcode == 107 && $diagset eq "Bib-1", + "query rejected: error " . $errcode); Net::Z3950::ZOOM::query_destroy($q); # Client-side compiled CQL: this will fail due to lack of config-file @@ -77,7 +82,6 @@ ok(defined $q, "create empty query"); $res = Net::Z3950::ZOOM::query_cql2rpn($q, 'title=utah and description=epicenter', $conn); -my $diagset = ""; $errcode = Net::Z3950::ZOOM::connection_error_x($conn, $errmsg, $addinfo, $diagset); ok($res < 0 && @@ -86,7 +90,7 @@ ok($res < 0 && "can't make CQL2RPN query: error " . $errcode); Net::Z3950::ZOOM::query_destroy($q); -# Finally, do a successful client-compiled CQL search +# Do a successful client-compiled CQL search $q = Net::Z3950::ZOOM::query_create(); ok(defined $q, "create empty query"); Net::Z3950::ZOOM::connection_option_set($conn, cqlfile => @@ -98,6 +102,33 @@ ok($res == 0, "created CQL2RPN query"); check_record($conn, $q); Net::Z3950::ZOOM::query_destroy($q); +# Client-side compiled CCL: this will fail due to incorrect syntax +$q = Net::Z3950::ZOOM::query_create(); +ok(defined $q, "create empty query"); +my($ccl_errcode, $ccl_errstr, $ccl_errpos) = (0, "", 0); + +$res = Net::Z3950::ZOOM::query_ccl2rpn($q, + 'ti=utah and', + "ti u=4 s=pw\nab u=62 s=pw", + $ccl_errcode, $ccl_errstr, $ccl_errpos); +ok($res < 0 && + $ccl_errcode == Net::Z3950::ZOOM::CCL_ERR_TERM_EXPECTED, + "can't make CCL2RPN query: error $ccl_errcode ($ccl_errstr)"); +Net::Z3950::ZOOM::query_destroy($q); + +# Do a successful client-compiled CCL search +$q = Net::Z3950::ZOOM::query_create(); +ok(defined $q, "create empty query"); +$res = Net::Z3950::ZOOM::query_ccl2rpn($q, + 'ti=utah and ab=epicenter', + "ti u=4 s=pw\nab u=62 s=pw", + $ccl_errcode, + $ccl_errstr, + $ccl_errpos); +ok($res == 0, "created CCL2RPN query"); +check_record($conn, $q); +Net::Z3950::ZOOM::query_destroy($q); + Net::Z3950::ZOOM::connection_destroy($conn); ok(1, "destroyed all objects"); @@ -123,15 +154,3 @@ sub check_record { Net::Z3950::ZOOM::resultset_destroy($rs); } - - -sub check_failure { - my($conn, $q, $expected_error, $expected_dset) = @_; - - my $rs = Net::Z3950::ZOOM::connection_search($conn, $q); - my($errcode, $errmsg, $addinfo, $diagset) = (undef, "dummy", "dummy", ""); - $errcode = Net::Z3950::ZOOM::connection_error_x($conn, $errmsg, $addinfo, - $diagset); - ok($errcode == $expected_error && $diagset eq $expected_dset, - "query rejected: error " . $errcode); -}