Use ZEND only for callbacks, rather than RECV_*
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Test / Search / Title.pm
index 122b170..86f5aec 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Title.pm,v 1.2 2006-07-11 14:16:35 mike Exp $
+# $Id: Title.pm,v 1.10 2007-02-23 15:03:44 mike Exp $
 
 # See the "Main" test package for documentation
 
@@ -9,32 +9,43 @@ use strict;
 use warnings;
 
 use ZOOM::IRSpy::Test;
-our @ISA;
-@ISA = qw(ZOOM::IRSpy::Test);
+our @ISA = qw(ZOOM::IRSpy::Test);
 
+use ZOOM::IRSpy::Utils qw(isodate);
 
-sub run {
-    my $this = shift();
-    my $irspy = $this->irspy();
-    my $pod = $irspy->pod();
 
-    $pod->callback(ZOOM::Event::RECV_SEARCH, \&found);
-    $pod->search_pqf('@attr 1=4 computer');
-    my $err = $pod->wait($irspy);
+sub start {
+    my $class = shift();
+    my($conn) = @_;
 
-    return 0;
+    $conn->irspy_search_pqf('@attr 1=4 mineral', undef, {},
+                           ZOOM::Event::ZEND, \&found,
+                           "exception", \&error);
 }
 
 
 sub found {
-    my($conn, $irspy, $rs, $event) = @_;
-
-    my $rec = $irspy->record($conn);
-    my $n = $rs->size();
-    $irspy->log("irspy_test", $conn->option("host"),
-               " title search found $n record", $n==1 ? "" : "s");
-    ### We should note the success or failure of the search in $rec
-    return 0;
+    my($conn, $task, $__UNUSED_udata, $event) = @_;
+
+    my $n = $task->{rs}->size();
+    $conn->log("irspy_test",
+              "title search found $n record", $n==1 ? "" : "s");
+    my $rec = $conn->record();
+    $rec->append_entry("irspy:status", "<irspy:search_title ok='1'>" .
+                      isodate(time()) . "</irspy:search_title>");
+
+    return ZOOM::IRSpy::Status::TASK_DONE;
+}
+
+
+sub error {
+    my($conn, $task, $__UNUSED_udata, $exception) = @_;
+
+    $conn->log("irspy_test", "title search had error: $exception");
+    my $rec = $conn->record();
+    $rec->append_entry("irspy:status", "<irspy:search_title ok='0'>" .
+                      isodate(time()) . "</irspy:search_title>");
+    return ZOOM::IRSpy::Status::TEST_BAD;
 }