1 | # -*- indent-tabs-mode: nil; tab-width: 4; -*- |
---|
2 | # vim:ft=perl:et:sw=4 |
---|
3 | # $Id$ |
---|
4 | |
---|
5 | use strict; |
---|
6 | use warnings; |
---|
7 | use Test::More; |
---|
8 | use FindBin qw($Bin); |
---|
9 | |
---|
10 | require "$Bin/common.pl"; |
---|
11 | eval "require '$Bin/config.pl'"; |
---|
12 | |
---|
13 | if ($@) { |
---|
14 | plan skip_all => 'no config found' if ($@); |
---|
15 | } elsif (!$LA::T::SQLBASE) { |
---|
16 | plan skip_all => 'No SQL base defined'; |
---|
17 | } else { |
---|
18 | plan tests => 32; # Number of test |
---|
19 | } |
---|
20 | |
---|
21 | use_ok('LATMOS::Accounts'); |
---|
22 | use_ok('LATMOS::Accounts::Bases::Sql'); |
---|
23 | |
---|
24 | ok(my $la = LATMOS::Accounts->new(undef, noacl => 1), "Can get LATMOS::Accounts"); |
---|
25 | ok(my $base = $la->base($LA::T::SQLBASE), "can get SQL base $LA::T::SQLBASE"); |
---|
26 | |
---|
27 | { # test: user |
---|
28 | my $oid = genid(); |
---|
29 | |
---|
30 | use_ok('LATMOS::Accounts::Bases::Sql::User'); |
---|
31 | ok($base->create_c_object('user', $oid, |
---|
32 | sn => "snUser", |
---|
33 | givenName => "givenNameUser", |
---|
34 | ), "Can create user $oid"); |
---|
35 | ok(my $obj = $base->get_object('user', $oid), "user $oid is actually deleted"); |
---|
36 | is($obj->get_attributes('sn'), "snUser"); |
---|
37 | |
---|
38 | my $passwd = genid(); |
---|
39 | ok($obj->set_password($passwd), "Can set password"); |
---|
40 | ok($base->authenticate_user($oid, $passwd), "can authenticate user"); |
---|
41 | ok(!$base->authenticate_user($oid, '----'), |
---|
42 | "don't authenticate with invalid password"); |
---|
43 | |
---|
44 | ok($base->delete_object('user', $oid), "Can delete user $oid"); |
---|
45 | ok(!$base->get_object('user', $oid), "user $oid is actually deleted"); |
---|
46 | } |
---|
47 | |
---|
48 | |
---|
49 | { # test: group |
---|
50 | my $oid = genid(); |
---|
51 | |
---|
52 | use_ok('LATMOS::Accounts::Bases::Sql::Group'); |
---|
53 | ok($base->create_c_object('group', $oid, |
---|
54 | description => 'Group Test' |
---|
55 | ), "Can create group $oid"); |
---|
56 | ok(my $obj = $base->get_object('group', $oid), "group $oid is actually deleted"); |
---|
57 | is($obj->get_attributes('description'), "Group Test"); |
---|
58 | |
---|
59 | ok($base->delete_object('group', $oid), "Can delete group $oid"); |
---|
60 | ok(!$base->get_object('group', $oid), "group $oid is actually deleted"); |
---|
61 | } |
---|
62 | |
---|
63 | { # test: nethost |
---|
64 | my $oid = genid(); |
---|
65 | |
---|
66 | use_ok('LATMOS::Accounts::Bases::Sql::Nethost'); |
---|
67 | ok($base->create_c_object('nethost', $oid, |
---|
68 | description => 'Nethost Test', |
---|
69 | ip => '255.255.255.255', # widely improbable to conflict with existing one |
---|
70 | ), "Can create nethost $oid"); |
---|
71 | ok(my $obj = $base->get_object('nethost', $oid), "nethost $oid is actually deleted"); |
---|
72 | is($obj->get_attributes('description'), "Nethost Test"); |
---|
73 | my ($ip) = $obj->get_attributes('ip'); |
---|
74 | is($ip, '255.255.255.255'); |
---|
75 | |
---|
76 | ok($base->delete_object('nethost', $oid), "Can delete nethost $oid"); |
---|
77 | ok(!$base->get_object('nethost', $oid), "nethost $oid is actually deleted"); |
---|
78 | } |
---|
79 | |
---|
80 | { # test: netzone |
---|
81 | my $oid = genid(); |
---|
82 | |
---|
83 | use_ok('LATMOS::Accounts::Bases::Sql::Netzone'); |
---|
84 | ok($base->create_c_object('netzone', $oid, |
---|
85 | description => 'Netzone Test', |
---|
86 | type => 'dhcp', |
---|
87 | ), "Can create netzone $oid"); |
---|
88 | ok(my $obj = $base->get_object('netzone', $oid), "netzone $oid is actually deleted"); |
---|
89 | is($obj->get_attributes('description'), "Netzone Test"); |
---|
90 | |
---|
91 | ok($base->delete_object('netzone', $oid), "Can delete netzone $oid"); |
---|
92 | ok(!$base->get_object('netzone', $oid), "netzone $oid is actually deleted"); |
---|
93 | } |
---|