Version 1.017
[catagits/Catalyst-Authentication-Store-LDAP.git] / t / lib / LDAPTest.pm
CommitLineData
f66d606b 1# local test ldap server
2
3package LDAPTest;
18d41a8f 4use strict;
5use warnings;
f66d606b 6
7use Net::LDAP::Server::Test;
8use Net::LDAP::Entry;
18d41a8f 9use Net::LDAP;
f66d606b 10
11sub server_port {10636}
12sub server_host { 'ldap://127.0.0.1:' . server_port() }
13
14sub 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
48sub ServerWrapper::stop {
49 my ($self) = @_;
50 $self->{client}->unbind;
51 $self->{server}->stop;
f66d606b 52}
53
541;