New
authorMike Taylor <mike@indexdata.com>
Tue, 20 Jun 2006 16:32:42 +0000 (16:32 +0000)
committerMike Taylor <mike@indexdata.com>
Tue, 20 Jun 2006 16:32:42 +0000 (16:32 +0000)
lib/ZOOM/IRSpy/Test.pm [new file with mode: 0644]
lib/ZOOM/IRSpy/Test/Main.pm [new file with mode: 0644]
lib/ZOOM/IRSpy/Test/Ping.pm [new file with mode: 0644]

diff --git a/lib/ZOOM/IRSpy/Test.pm b/lib/ZOOM/IRSpy/Test.pm
new file mode 100644 (file)
index 0000000..d306b29
--- /dev/null
@@ -0,0 +1,77 @@
+# $Id: Test.pm,v 1.1 2006-06-20 16:32:42 mike Exp $
+
+package ZOOM::IRSpy::Test;
+
+use 5.008;
+use strict;
+use warnings;
+
+=head1 NAME
+
+ZOOM::IRSpy::Test - base class for tests in IRSpy
+
+=head1 SYNOPSIS
+
+ ### To follow
+
+=head1 DESCRIPTION
+
+I<### To follow>
+
+=cut
+
+sub new {
+    my $class = shift();
+    my($irspy) = @_;
+
+    return bless {
+       irspy => $irspy,
+    }, $class;
+}
+
+
+sub irspy {
+    my $this = shift();
+    return $this->{irspy};
+}
+
+
+sub run {
+    my $this = shift();
+    die "can't run the base-class test";
+}
+
+### Could include loop detection
+sub run_tests {
+    my $this = shift();
+    my @tname = @_;
+
+    my $res = 0;
+    foreach my $tname (@tname) {
+       my $sub = $this->irspy()->_run_test($tname);
+       $res = $sub if $sub > $res;
+    }
+
+    return $res;
+}
+
+
+=head1 SEE ALSO
+
+ZOOM::IRSpy
+
+=head1 AUTHOR
+
+Mike Taylor, E<lt>mike@indexdata.comE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2006 by Index Data ApS.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.8.7 or,
+at your option, any later version of Perl 5 you may have available.
+
+=cut
+
+1;
diff --git a/lib/ZOOM/IRSpy/Test/Main.pm b/lib/ZOOM/IRSpy/Test/Main.pm
new file mode 100644 (file)
index 0000000..027da6b
--- /dev/null
@@ -0,0 +1,53 @@
+# $Id: Main.pm,v 1.1 2006-06-20 16:32:42 mike Exp $
+
+package ZOOM::IRSpy::Test::Main;
+
+use 5.008;
+use strict;
+use warnings;
+
+use ZOOM::IRSpy::Test;
+our @ISA;
+@ISA = qw(ZOOM::IRSpy::Test);
+
+
+=head1 NAME
+
+ZOOM::IRSpy::Test::Main - a single test for IRSpy
+
+=head1 SYNOPSIS
+
+ ### To follow
+
+=head1 DESCRIPTION
+
+I<### To follow>
+
+=cut
+
+sub run {
+    my $this = shift();
+
+    return $this->run_tests("Ping");
+}
+
+
+=head1 SEE ALSO
+
+ZOOM::IRSpy
+
+=head1 AUTHOR
+
+Mike Taylor, E<lt>mike@indexdata.comE<gt>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2006 by Index Data ApS.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.8.7 or,
+at your option, any later version of Perl 5 you may have available.
+
+=cut
+
+1;
diff --git a/lib/ZOOM/IRSpy/Test/Ping.pm b/lib/ZOOM/IRSpy/Test/Ping.pm
new file mode 100644 (file)
index 0000000..402a98e
--- /dev/null
@@ -0,0 +1,91 @@
+# $Id: Ping.pm,v 1.1 2006-06-20 16:32:42 mike Exp $
+
+# See the "Main" test package for documentation
+
+package ZOOM::IRSpy::Test::Ping;
+
+use 5.008;
+use strict;
+use warnings;
+
+use ZOOM::IRSpy::Test;
+our @ISA;
+@ISA = qw(ZOOM::IRSpy::Test);
+
+
+sub run {
+    my $this = shift();
+
+    print "Running 'Ping' test\n";
+    ### Now actually do it
+    return 0;
+}
+
+
+# Some of this Pod-using code may be useful.
+#
+#my $pod = new ZOOM::Pod(@ARGV);
+#$pod->option(elementSetName => "b");
+#$pod->callback(ZOOM::Event::RECV_SEARCH, \&completed_search);
+#$pod->callback(ZOOM::Event::RECV_RECORD, \&got_record);
+##$pod->callback(exception => \&exception_thrown);
+#$pod->search_pqf("the");
+#my $err = $pod->wait();
+#die "$pod->wait() failed with error $err" if $err;
+#
+#sub completed_search {
+#    my($conn, $state, $rs, $event) = @_;
+#    print $conn->option("host"), ": found ", $rs->size(), " records\n";
+#    $state->{next_to_fetch} = 0;
+#    $state->{next_to_show} = 0;
+#    request_records($conn, $rs, $state, 2);
+#    return 0;
+#}
+#
+#sub got_record {
+#    my($conn, $state, $rs, $event) = @_;
+#
+#    {
+#      # Sanity-checking assertions.  These should be impossible
+#      my $ns = $state->{next_to_show};
+#      my $nf = $state->{next_to_fetch};
+#      if ($ns > $nf) {
+#          die "next_to_show > next_to_fetch ($ns > $nf)";
+#      } elsif ($ns == $nf) {
+#          die "next_to_show == next_to_fetch ($ns)";
+#      }
+#    }
+#
+#    my $i = $state->{next_to_show}++;
+#    my $rec = $rs->record($i);
+#    print $conn->option("host"), ": record $i is ", render_record($rec), "\n";
+#    request_records($conn, $rs, $state, 3)
+#      if $i == $state->{next_to_fetch}-1;
+#
+#    return 0;
+#}
+#
+#sub exception_thrown {
+#    my($conn, $state, $rs, $exception) = @_;
+#    print "Uh-oh!  $exception\n";
+#    return 0;
+#}
+#
+#sub request_records {
+#    my($conn, $rs, $state, $count) = @_;
+#
+#    my $i = $state->{next_to_fetch};
+#    ZOOM::Log::log("irspy", "requesting $count records from $i");
+#    $rs->records($i, $count, 0);
+#    $state->{next_to_fetch} += $count;
+#}
+#
+#sub render_record {
+#    my($rec) = @_;
+#
+#    return "undefined" if !defined $rec;
+#    return "'" . $rec->render() . "'";
+#}
+
+
+1;