+
+
+sub check_record {
+ my($conn, $q) = @_;
+
+ my $rs;
+ eval { $rs = $conn->search($q) };
+ ok(!$@, "search");
+ die $@ if $@;
+
+ my $n = $rs->size();
+ ok($n == 1, "found 1 record as expected");
+
+ my $rec = $rs->record(0);
+ ok(1, "got record idenfified by query");
+
+ my $data = $rec->render();
+ ok(1, "rendered record");
+ ok($data =~ /^035 +\$a ESDD0006$/m, "record is the expected one");
+
+ $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();
+}