source: LATMOS-Accounts/t/11_bases_unix.t @ 26

Last change on this file since 26 was 26, checked in by nanardon, 15 years ago
  • kill temp directory
File size: 1.8 KB
Line 
1use strict;
2use warnings;
3use Test::More tests => 21;
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");
47
48
49ok(my $unixbmod = LATMOS::Accounts::Bases->new(
50    'unix',
51    passwd  => "$dir/passwd",
52    shadow  => "$dir/shadow",
53    group   => "$dir/group",
54    gshadow => "$dir/gshadow",
55    ), "Can get unix base");
56is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell');
57
58system('rm', '-fr', $dir);
Note: See TracBrowser for help on using the repository browser.