Add Ubuntu quantal
[ZOOM-Perl-moved-to-github.git] / t / 22-query.t
index 93d63b8..4ffbd63 100644 (file)
@@ -1,11 +1,9 @@
-# $Id: 22-query.t,v 1.4 2005-12-22 08:58:27 mike Exp $
-
 # Before `make install' is performed this script should be runnable with
 # `make test'. After `make install' it should work as `perl 22-query.t'
 
 use strict;
 use warnings;
-use Test::More tests => 31;
+use Test::More tests => 41;
 BEGIN { use_ok('ZOOM') };
 
 #ZOOM::Log::init_level(ZOOM::Log::mask_str("zoom"));
@@ -51,11 +49,12 @@ 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;
-eval { $conn = new ZOOM::Connection($host, 0) };
+eval { $conn = new ZOOM::Connection($host, 0,
+                                   preferredRecordSyntax => "usmarc") };
 ok(!$@, "connection to '$host'");
-$conn->option(preferredRecordSyntax => "usmarc");
+
 
 ok(1, "[no need to create empty query]");
 eval { $q = new ZOOM::Query::PQF('@and @attr 1=4 utah @attr 1=62 epicenter') };
@@ -67,7 +66,12 @@ $q->destroy();
 ok(1, "[no need to create empty query]");
 eval { $q = new ZOOM::Query::CQL('title=utah and description=epicenter') };
 ok(!$@, "created CQL query");
-#check_failure($conn, $q, 107, "Bib-1");
+my $rs;
+eval { $rs = $conn->search($q) };
+ok($@ && $@->isa("ZOOM::Exception") &&
+   $@->code() == 107 && $@->diagset() eq "Bib-1",
+   "query rejected: error " . $@->code());
+$q->destroy();
 
 # Client-side compiled CQL: this will fail due to lack of config-file
 ok(1, "[no need to create empty query]");
@@ -77,13 +81,29 @@ ok($@ && $@->isa("ZOOM::Exception") &&
    $@->code() == ZOOM::Error::CQL_TRANSFORM && $@->diagset() eq "ZOOM",
    "can't make CQL2RPN query: error " . $@->code());
 
-# Finally, do a successful client-compiled CQL search
+# Do a successful client-compiled CQL search
 ok(1, "[no need to create empty query]");
 $conn->option(cqlfile => "samples/cql/pqf.properties");
 eval { $q = new ZOOM::Query::CQL2RPN('title=utah and description=epicenter',
                                     $conn) };
-ok(!$@, "created CQL2RPN query: \@=$@");
+ok(!$@, "created CQL2RPN query");
 check_record($conn, $q);
+$q->destroy();
+
+# Client-side compiled CCL: this will fail due to lack of config-file
+ok(1, "[no need to create empty query]");
+eval { $q = new ZOOM::Query::CCL2RPN('ti=utah and ab=epicenter', $conn) };
+ok($@ && $@->isa("ZOOM::Exception") &&
+   $@->code() == ZOOM::Error::CCL_CONFIG && $@->diagset() eq "ZOOM",
+   "can't make CCL2RPN query: error " . $@->code());
+
+# Do a successful client-compiled CCL search
+ok(1, "[no need to create empty query]");
+$conn->option(cclfile => "samples/ccl/default.bib");
+eval { $q = new ZOOM::Query::CCL2RPN('ti=utah and ab=epicenter', $conn) };
+ok(!$@, "created CCL2RPN query");
+check_record($conn, $q);
+$q->destroy();
 
 $conn->destroy();
 ok(1, "destroyed all objects");
@@ -109,15 +129,3 @@ sub check_record {
 
     $rs->destroy();
 }
-
-
-sub check_failure {
-    my($conn, $q, $expected_error, $expected_dset) = @_;
-
-    my $rs;
-    eval { $rs = $conn->search($q) };
-    ok($@ && $@->isa("ZOOM::Exception") &&
-       $@->code() == $expected_error && $@->diagset() eq $expected_dset,
-       "query rejected: error " . $@->code());
-    $rs->destroy();
-}