https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=15108 David Cook <dcook@prosentient.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dcook@prosentient.com.au --- Comment #43 from David Cook <dcook@prosentient.com.au> --- (In reply to Marcel de Rooy from comment #42)
Frederic, the absence of unit tests in this patch set might be a reason for these patches getting stuck in the SO queue.
Jonathan just pointed me at this bug... I've been mocking an OAI server very simply using Test::TCP and Net::Server::HTTP, so that I can test my OAI client. The responses are all hard-coded at the moment, and it doesn't check the incoming requests besides a few verbs, but it's a start. It's 5:33pm on a Friday here, so I don't have time to flesh this out at the moment. However, here's the bit of code I'm using: my $server = Test::TCP->new( code => sub { my $port = shift; Net::Server::HTTP->run( log_level => 0, port => [$port], app => { '/' => sub { my ($server) = @_; my $request = $server->http_request_info; my @uri_strings = (); my @uri_string = map { $_ if defined $_ } ($request->{request_protocol},"://",$request->{request_path},$request->{query_string}); my $uri_string = join("",@uri_string); # my $uri_string = join($request->{request_protocol},"://",$request->{request_path},$request->{query_string}); my $uri = URI->new($uri_string); my %query_parameters = $uri->query_form; print "Content-type: text/xml\n\n"; if (%query_parameters){ if ($query_parameters{verb} eq "Identify"){ print "$identify_xml\n"; } elsif ($query_parameters{verb} eq "GetRecord"){ print "$getrecord_xml\n"; } elsif ($query_parameters{verb} eq "ListRecords"){ print "$listrecords_xml\n"; } } else { print "$error_xml\n"; } }, }, ); }, ); I imagine it should be fairly easy to test the Koha::OAI::Server modules by building off this pattern. Call $server->port to get the port to which the test server has bound, and you're able to connect to the server using localhost. -- You are receiving this mail because: You are watching all bug changes.