Add error()
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Test / Search / Bib1.pm
1 # $Id: Bib1.pm,v 1.6 2006-10-11 16:47:23 mike Exp $
2
3 # See the "Main" test package for documentation
4
5 package ZOOM::IRSpy::Test::Search::Bib1;
6
7 use 5.008;
8 use strict;
9 use warnings;
10
11 use ZOOM::IRSpy::Test;
12 our @ISA = qw(ZOOM::IRSpy::Test);
13
14
15 sub start {
16     my $class = shift();
17     my($conn) = @_;
18
19     my @attrs = (1,             # personal name
20                  4,             # title
21                  52,            # subject
22                  1003,          # author
23                  1016,          # any
24                  );
25     foreach my $attr (@attrs) {
26         $conn->irspy_search_pqf("\@attr 1=$attr mineral",
27                                 ZOOM::Event::RECV_SEARCH, \&found,
28                                 exception => \&error);
29     }
30 }
31
32
33 sub found {
34     my($conn, $task, $event) = @_;
35
36     my $n = $task->{rs}->size();
37     $conn->log("irspy_test", "search found $n record", $n==1 ? "" : "s");
38     ### Need to get the BIB-1 attribute into this callback
39     $conn->record()->append_entry("irspy:status",
40                                   "<irspy:search_bib1 ok='1'>" .
41                                   isodate(time()) .
42                                   "</irspy:search_bib1>");
43
44     return ZOOM::IRSpy::Status::TASK_DONE;
45 }
46
47
48 sub error {
49     my($conn, $task, $exception) = @_;
50
51     $conn->log("irspy_test", "error: $exception");
52     $conn->record()->append_entry("irspy:status",
53                                   "<irspy:search_bib1 ok='0'>" .
54                                   isodate(time()) .
55                                   "</irspy:search_bib1>");
56     return ZOOM::IRSpy::Status::TASK_DONE;
57 }
58
59
60 1;