source: branches/1.0/LATMOS-Accounts/t/11_bases_unix.t @ 858

Last change on this file since 858 was 715, checked in by nanardon, 14 years ago
  • la-passwd set password in all base, not only one (must have been case for long time)
  • add tools la-rename to rename an object in all base and avoid delete/creation
  • many fix in syncaccess, add some functions
File size: 2.4 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    passwd  => "$dir/passwd",
21    shadow  => "$dir/shadow",
22    group   => "$dir/group",
23    gshadow => "$dir/gshadow",
24    ), "Can get unix base");
25isa_ok($unixb, 'LATMOS::Accounts::Bases');
26isa_ok($unixb, 'LATMOS::Accounts::Bases::Unix');
27ok($unixb->load,   "Can load unix base");
28
29is( $unixb->get_field_name('user', 'homeDirectory'), "home", "can call get_fields_name");
30
31ok(my $user =  $unixb->get_object('user', 'root'),  "Can get root user");
32ok(my $group = $unixb->get_object('group', 'root'), "Can get root group");
33
34is($user->get_c_field('homeDirectory'), '/root', 'Can get homeDirectory directory');
35is($user->get_field('home'), '/root', 'Can get home directory');
36
37is($user->get_field('shell'), '/bin/bash', 'Can get login shell');
38ok($user->set_fields(shell => '/bin/tcsh'), "Can set login shell");
39is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell');
40ok($unixb->create_object('user', 'admin',
41    uid => 2, gid => 2,
42    home => '/home/admin',
43    shell => '/bin/sh',
44), "Can create a user");
45
46ok($unixb->commit, "Can save unix base");
47ok(eq_set($group->get_c_field('memberUID'), [ 'user' ]), 'can get group\'s member');
48ok($group->set_c_fields('memberUID', [ 'admin' ]), 'can set group\'s member');
49ok(eq_set($group->get_c_field('memberUID'), [ 'admin' ]), 'can get group\'s member after change');
50
51
52ok(my $unixbmod = LATMOS::Accounts::Bases->new(
53    'unix',
54    passwd  => "$dir/passwd",
55    shadow  => "$dir/shadow",
56    group   => "$dir/group",
57    gshadow => "$dir/gshadow",
58    ), "Can get unix base");
59ok($unixbmod->load, "Can load saved db");
60ok($user = $unixbmod->get_object('user', 'root'),
61    "Can get object from modified db");
62is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell');
63
64ok($unixbmod->rename_object('user', 'root', 'rootb'), "can rename object");
65ok($unixbmod->get_object('user', 'rootb'), "can get renamed object");
66ok(!$unixbmod->get_object('user', 'root'), "can get old object");
67
68system('rm', '-fr', $dir);
Note: See TracBrowser for help on using the repository browser.