Commit | Line | Data |
f66d606b |
1 | # local test ldap server |
2 | |
3 | package LDAPTest; |
18d41a8f |
4 | use strict; |
5 | use warnings; |
f66d606b |
6 | |
7 | use Net::LDAP::Server::Test; |
8 | use Net::LDAP::Entry; |
18d41a8f |
9 | use Net::LDAP; |
f66d606b |
10 | |
11 | sub server_port {10636} |
12 | sub server_host { 'ldap://127.0.0.1:' . server_port() } |
13 | |
14 | sub spawn_server { |
18d41a8f |
15 | my $server = Net::LDAP::Server::Test->new( server_port(), auto_schema => 1, @_ ); |
16 | |
17 | my $ldap = Net::LDAP->new(server_host()) or die "Can't connect: $@"; |
18 | my $msg = $ldap->bind; |
19 | die "Can't bind: " . $msg->error if $msg->is_error; |
20 | |
21 | for my $user ( |
22 | { |
23 | uid => 'somebody', |
24 | displayName => 'Some Body', |
25 | cn => [qw(value1 value2)] |
26 | }, |
27 | { |
28 | uid => 'some*', |
29 | displayName => 'Some Star', |
30 | cn => [qw(value1 value2)] |
31 | }, |
32 | { |
33 | uid => 'sunnO)))', |
34 | displayName => 'Sunn O)))', |
35 | cn => [qw(value1 value2)] |
36 | } |
37 | ) { |
38 | my $msg = $ldap->add("uid=$user->{uid},ou=foobar", attrs => [ |
39 | objectClass => 'person', |
40 | ou => 'foobar', |
41 | %{$user}, |
42 | ]); |
43 | die "Can't bind: " . $msg->error if $msg->is_error; |
44 | }; |
45 | return bless { server => $server, client => $ldap }, 'ServerWrapper'; |
46 | } |
47 | |
48 | sub ServerWrapper::stop { |
49 | my ($self) = @_; |
50 | $self->{client}->unbind; |
51 | $self->{server}->stop; |
f66d606b |
52 | } |
53 | |
54 | 1; |