[Koha-patches] [PATCH] Bug 1953 [1/6]: adding test module for C4::Koha::displayServers
Galen Charlton
galen.charlton at liblime.com
Tue Jul 29 18:42:45 CEST 2008
From: Andrew Moore <andrew.moore at liblime.com>
This test suite tests the several different ways that we can call C4::Koha::displayServers.
Signed-off-by: Galen Charlton <galen.charlton at liblime.com>
---
t/lib/KohaTest/Koha/displayServers.pm | 192 +++++++++++++++++++++++++++++++++
1 files changed, 192 insertions(+), 0 deletions(-)
create mode 100644 t/lib/KohaTest/Koha/displayServers.pm
diff --git a/t/lib/KohaTest/Koha/displayServers.pm b/t/lib/KohaTest/Koha/displayServers.pm
new file mode 100644
index 0000000..7794268
--- /dev/null
+++ b/t/lib/KohaTest/Koha/displayServers.pm
@@ -0,0 +1,192 @@
+package KohaTest::Koha::displayServers;
+use base qw( KohaTest::Koha );
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use C4::Koha;
+
+=head2 basic_usage
+
+call displayServers with no parameters and investigate the things that
+it returns. This depends on there being at least one server defined,
+as do some other tests in this module.
+
+=cut
+
+sub basic_usage : Test( 12 ) {
+ my $self = shift;
+
+ my $servers = C4::Koha::displayServers();
+ isa_ok( $servers, 'ARRAY' );
+ my $firstserver = $servers->[0];
+ isa_ok( $firstserver, 'HASH' );
+
+ my @keys = qw( opensearch icon value name checked zed label id encoding );
+ is( scalar keys %$firstserver, scalar @keys, 'the hash has the right number of keys' );
+ foreach my $key ( @keys ) {
+ ok( exists $firstserver->{$key}, "There is a $key key" );
+ }
+
+ # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
+}
+
+=head2 position_does_not_exist
+
+call displayServers with a position that does not exist and make sure
+that we get none back.
+
+=cut
+
+sub position_does_not_exist : Test( 2 ) {
+ my $self = shift;
+
+ my $servers = C4::Koha::displayServers( 'this does not exist' );
+ isa_ok( $servers, 'ARRAY' );
+ is( scalar @$servers, 0, 'received no servers' );
+
+ # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
+}
+
+=head2 position_does_exist
+
+call displayServers with a position that does exist and make sure that
+we get at least one back.
+
+=cut
+
+sub position_does_exist : Test( 3 ) {
+ my $self = shift;
+
+ my $position = $self->_get_a_position();
+ ok( $position, 'We have a position that exists' );
+
+ my $servers = C4::Koha::displayServers( $position );
+ isa_ok( $servers, 'ARRAY' );
+ ok( scalar @$servers, 'received at least one server' );
+
+ # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
+}
+
+=head2 type_does_not_exist
+
+call displayServers with a type that does not exist and make sure
+that we get none back.
+
+=cut
+
+sub type_does_not_exist : Test( 2 ) {
+ my $self = shift;
+
+ my $servers = C4::Koha::displayServers( undef, 'this does not exist' );
+ isa_ok( $servers, 'ARRAY' );
+ is( scalar @$servers, 0, 'received no servers' );
+
+ # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
+}
+
+=head2 type_does_exist
+
+call displayServers with a type that does exist and make sure
+that we get at least one back.
+
+=cut
+
+sub type_does_exist : Test( 3 ) {
+ my $self = shift;
+
+ my $type = $self->_get_a_type();
+ ok( $type, 'We have a type that exists' );
+
+ my $servers = C4::Koha::displayServers( undef, $type );
+ isa_ok( $servers, 'ARRAY' );
+ ok( scalar @$servers, 'received at least one server' );
+
+ # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
+}
+
+=head2 position_and_type
+
+call displayServers with a variety of both positions and types and
+verify that we get either something or nothing back.
+
+
+=cut
+
+sub position_and_type : Test( 8 ) {
+ my $self = shift;
+
+ my ( $position, $type ) = $self->_get_a_position_and_type();
+ ok( $position, 'We have a type that exists' );
+ ok( $type, 'We have a type that exists' );
+
+ my $servers = C4::Koha::displayServers( $position, 'type does not exist' );
+ isa_ok( $servers, 'ARRAY' );
+ is( scalar @$servers, 0, 'received no servers' );
+
+ $servers = C4::Koha::displayServers( 'position does not exist', $type );
+ isa_ok( $servers, 'ARRAY' );
+ is( scalar @$servers, 0, 'received no servers' );
+
+ $servers = C4::Koha::displayServers( $position, $type );
+ isa_ok( $servers, 'ARRAY' );
+ ok( scalar @$servers, 'received at least one server' );
+
+ # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
+}
+
+=head1 INTERNAL METHODS
+
+these are not test methods, but they help me write them.
+
+=head2 _get_a_position
+
+returns a position value for which at least one server exists
+
+=cut
+
+sub _get_a_position {
+ my $self = shift;
+
+ my ( $position, $type ) = $self->_get_a_position_and_type();
+ return $position;
+
+}
+
+=head2 _get_a_type
+
+returns a type value for which at least one server exists
+
+=cut
+
+sub _get_a_type {
+ my $self = shift;
+
+ my ( $position, $type ) = $self->_get_a_position_and_type();
+ return $type;
+
+}
+
+=head2 _get_a_position_and_type
+
+returns a position and type for a server
+
+=cut
+
+sub _get_a_position_and_type {
+ my $self = shift;
+
+ my $dbh = C4::Context->dbh;
+ my $sql = 'SELECT position, type FROM z3950servers';
+ my $sth = $dbh->prepare($sql) or return;
+ $sth->execute or return;
+
+ my @row = $sth->fetchrow_array;
+ return ( $row[0], $row[1] );
+
+}
+
+
+1;
--
1.5.5.GIT
More information about the Koha-patches
mailing list