dump config and don't re-use $search for results of search
[virtual-ldap] / t / ldap-koha.t
index 7814ade..cc8191a 100755 (executable)
@@ -3,13 +3,18 @@
 use warnings;
 use strict;
 
-use Test::More tests => 37;
+use Test::More tests => 76;
 use Data::Dump qw(dump);
 
 BEGIN {
        use_ok 'Net::LDAP';
 }
 
+our $config;
+ok( require( ( shift @ARGV || 't/config.pl' ) ), 'config.pl' );
+
+diag "config ",dump($config);
+
 sub ldap_check_error {
        my $o = shift;
        ok( ! $o->code, 'no errror' );
@@ -21,11 +26,6 @@ ok( my $ldap = Net::LDAP->new( 'localhost:2389' ), 'new Net::LDAP' );
 ok( my $bind = $ldap->bind, 'bind' );
 ldap_check_error $bind;
 
-my @test_searches = ( qw/
-uid=dpavlin@ffzg.hr
-pager=E00401001F77E218
-/ );
-
 sub check_search_attributes {
        my $search = shift;
 
@@ -35,14 +35,28 @@ sub check_search_attributes {
        }
 }
 
-foreach my $search ( @test_searches ) {
+sub search {
+       my ($ldap,$search) = @_;
+       ok( my $result = $ldap->search( filter => $search ), "search $search" );
+       ldap_check_error $result;
+       ok( $result->entries, 'have results' );
+       return $result;
+}
 
-       ok( my $search = $ldap->search( filter => $search ), "search $search" );
-       ldap_check_error $search;
-       ok( $search->entries, 'have results' );
-       check_search_attributes $search => 'uid', 'mail', 'pager', 'memberOf';
+foreach my $search ( qw/
+uid=dpavlin@ffzg.hr
+pager=E00401001F77E218
+/ ) {
+       my $entries = search $ldap => $search;
+       check_search_attributes $entries => 'uid', 'mail', 'pager', 'memberOf';
 
+       $entries = search $ldap => "(&(objectclass=HrEduPerson)($search))";
+       check_search_attributes $entries => 'uid', 'mail', 'pager', 'memberOf';
 }
 
+search $ldap => $_ foreach ( qw/
+objectclass=organizationalUnit
+objectclass=group
+/ );
 
 ok( $ldap->unbind, 'unbind' );