1 package KohaTest::Koha::displayServers;
2 use base qw( KohaTest::Koha );
13 call displayServers with no parameters and investigate the things that
14 it returns. This depends on there being at least one server defined,
15 as do some other tests in this module.
19 sub basic_usage : Test( 12 ) {
22 my $servers = C4::Koha::displayServers();
23 isa_ok( $servers, 'ARRAY' );
24 my $firstserver = $servers->[0];
25 isa_ok( $firstserver, 'HASH' );
27 my @keys = qw( opensearch icon value name checked zed label id encoding );
28 is( scalar keys %$firstserver, scalar @keys, 'the hash has the right number of keys' );
29 foreach my $key ( @keys ) {
30 ok( exists $firstserver->{$key}, "There is a $key key" );
33 # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
36 =head2 position_does_not_exist
38 call displayServers with a position that does not exist and make sure
39 that we get none back.
43 sub position_does_not_exist : Test( 2 ) {
46 my $servers = C4::Koha::displayServers( 'this does not exist' );
47 isa_ok( $servers, 'ARRAY' );
48 is( scalar @$servers, 0, 'received no servers' );
50 # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
53 =head2 position_does_exist
55 call displayServers with a position that does exist and make sure that
56 we get at least one back.
60 sub position_does_exist : Test( 3 ) {
63 my $position = $self->_get_a_position();
64 ok( $position, 'We have a position that exists' );
66 my $servers = C4::Koha::displayServers( $position );
67 isa_ok( $servers, 'ARRAY' );
68 ok( scalar @$servers, 'received at least one server' );
70 # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
73 =head2 type_does_not_exist
75 call displayServers with a type that does not exist and make sure
76 that we get none back.
80 sub type_does_not_exist : Test( 2 ) {
83 my $servers = C4::Koha::displayServers( undef, 'this does not exist' );
84 isa_ok( $servers, 'ARRAY' );
85 is( scalar @$servers, 0, 'received no servers' );
87 # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
90 =head2 type_does_exist
92 call displayServers with a type that does exist and make sure
93 that we get at least one back.
97 sub type_does_exist : Test( 3 ) {
100 my $type = $self->_get_a_type();
101 ok( $type, 'We have a type that exists' );
103 my $servers = C4::Koha::displayServers( undef, $type );
104 isa_ok( $servers, 'ARRAY' );
105 ok( scalar @$servers, 'received at least one server' );
107 # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
110 =head2 position_and_type
112 call displayServers with a variety of both positions and types and
113 verify that we get either something or nothing back.
118 sub position_and_type : Test( 8 ) {
121 my ( $position, $type ) = $self->_get_a_position_and_type();
122 ok( $position, 'We have a type that exists' );
123 ok( $type, 'We have a type that exists' );
125 my $servers = C4::Koha::displayServers( $position, 'type does not exist' );
126 isa_ok( $servers, 'ARRAY' );
127 is( scalar @$servers, 0, 'received no servers' );
129 $servers = C4::Koha::displayServers( 'position does not exist', $type );
130 isa_ok( $servers, 'ARRAY' );
131 is( scalar @$servers, 0, 'received no servers' );
133 $servers = C4::Koha::displayServers( $position, $type );
134 isa_ok( $servers, 'ARRAY' );
135 ok( scalar @$servers, 'received at least one server' );
137 # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) );
140 =head1 INTERNAL METHODS
142 these are not test methods, but they help me write them.
144 =head2 _get_a_position
146 returns a position value for which at least one server exists
150 sub _get_a_position {
153 my ( $position, $type ) = $self->_get_a_position_and_type();
160 returns a type value for which at least one server exists
167 my ( $position, $type ) = $self->_get_a_position_and_type();
172 =head2 _get_a_position_and_type
174 returns a position and type for a server
178 sub _get_a_position_and_type {
181 my $dbh = C4::Context->dbh;
182 my $sql = 'SELECT position, type FROM z3950servers';
183 my $sth = $dbh->prepare($sql) or return;
184 $sth->execute or return;
186 my @row = $sth->fetchrow_array;
187 return ( $row[0], $row[1] );