source: trunk/LATMOS-Accounts/t/11_bases_unix.t @ 1071

Last change on this file since 1071 was 1071, checked in by nanardon, 12 years ago
  • rename options() to config() to clarify its role
File size: 2.5 KB
Line 
1use strict;
2use warnings;
3use Test::More tests => 29;
4use File::Temp;
5
6use_ok('LATMOS::Accounts::Bases');
7use_ok('LATMOS::Accounts::Bases::Objects');
8use_ok('LATMOS::Accounts::Bases::Unix');
9use_ok('LATMOS::Accounts::Bases::Unix::User');
10use_ok('LATMOS::Accounts::Bases::Unix::Group');
11
12my $dir = File::Temp::tempdir;
13
14foreach (qw(passwd shadow group gshadow)) {
15    system('cp', "testdata/$_", "$dir/$_");
16}
17
18ok(my $unixb = LATMOS::Accounts::Bases->new(
19    'unix',
20    { params => {
21        passwd  => "$dir/passwd",
22        shadow  => "$dir/shadow",
23        group   => "$dir/group",
24        gshadow => "$dir/gshadow",
25    } }
26    ), "Can get unix base");
27isa_ok($unixb, 'LATMOS::Accounts::Bases');
28isa_ok($unixb, 'LATMOS::Accounts::Bases::Unix');
29ok($unixb->load,   "Can load unix base");
30
31is( $unixb->attribute('user', 'homeDirectory')->iname, "home", "can call get_fields_name");
32
33ok(my $user =  $unixb->get_object('user', 'root'),  "Can get root user");
34ok(my $group = $unixb->get_object('group', 'root'), "Can get root group");
35
36is($user->get_c_field('homeDirectory'), '/root', 'Can get homeDirectory directory');
37is($user->get_field('home'), '/root', 'Can get home directory');
38
39is($user->get_field('shell'), '/bin/bash', 'Can get login shell');
40ok($user->set_fields(shell => '/bin/tcsh'), "Can set login shell");
41is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell');
42ok($unixb->create_object('user', 'admin',
43    uid => 2, gid => 2,
44    home => '/home/admin',
45    shell => '/bin/sh',
46), "Can create a user");
47
48ok($unixb->commit, "Can save unix base");
49ok(eq_set($group->get_c_field('memberUID'), [ 'user' ]), 'can get group\'s member');
50ok($group->set_c_fields('memberUID', [ 'admin' ]), 'can set group\'s member');
51ok(eq_set($group->get_c_field('memberUID'), [ 'admin' ]), 'can get group\'s member after change');
52
53
54ok(my $unixbmod = LATMOS::Accounts::Bases->new(
55    'unix',
56    { params => {
57    passwd  => "$dir/passwd",
58    shadow  => "$dir/shadow",
59    group   => "$dir/group",
60    gshadow => "$dir/gshadow",
61    } }
62    ), "Can get unix base");
63ok($unixbmod->load, "Can load saved db");
64ok($user = $unixbmod->get_object('user', 'root'),
65    "Can get object from modified db");
66is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell');
67
68ok($unixbmod->rename_object('user', 'root', 'rootb'), "can rename object");
69ok($unixbmod->get_object('user', 'rootb'), "can get renamed object");
70ok(!$unixbmod->get_object('user', 'root'), "can get old object");
71
72system('rm', '-fr', $dir);
Note: See TracBrowser for help on using the repository browser.