1 | use strict; |
---|
2 | use warnings; |
---|
3 | use Test::More tests => 21; |
---|
4 | use File::Temp; |
---|
5 | |
---|
6 | use_ok('LATMOS::Accounts::Bases'); |
---|
7 | use_ok('LATMOS::Accounts::Bases::Objects'); |
---|
8 | use_ok('LATMOS::Accounts::Bases::Unix'); |
---|
9 | use_ok('LATMOS::Accounts::Bases::Unix::User'); |
---|
10 | use_ok('LATMOS::Accounts::Bases::Unix::Group'); |
---|
11 | |
---|
12 | my $dir = File::Temp::tempdir; |
---|
13 | |
---|
14 | foreach (qw(passwd shadow group gshadow)) { |
---|
15 | system('cp', "testdata/$_", "$dir/$_"); |
---|
16 | } |
---|
17 | |
---|
18 | ok(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"); |
---|
25 | isa_ok($unixb, 'LATMOS::Accounts::Bases'); |
---|
26 | isa_ok($unixb, 'LATMOS::Accounts::Bases::Unix'); |
---|
27 | ok($unixb->load, "Can load unix base"); |
---|
28 | |
---|
29 | is( $unixb->get_field_name('user', 'homeDirectory'), "home", "can call get_fields_name"); |
---|
30 | |
---|
31 | ok(my $user = $unixb->get_object('user', 'root'), "Can get root user"); |
---|
32 | ok(my $group = $unixb->get_object('group', 'root'), "Can get root group"); |
---|
33 | |
---|
34 | is($user->get_c_field('homeDirectory'), '/root', 'Can get homeDirectory directory'); |
---|
35 | is($user->get_field('home'), '/root', 'Can get home directory'); |
---|
36 | |
---|
37 | is($user->get_field('shell'), '/bin/bash', 'Can get login shell'); |
---|
38 | ok($user->set_fields(shell => '/bin/tcsh'), "Can set login shell"); |
---|
39 | is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell'); |
---|
40 | ok($unixb->create_object('user', 'admin', |
---|
41 | uid => 2, gid => 2, |
---|
42 | home => '/home/admin', |
---|
43 | shell => '/bin/sh', |
---|
44 | ), "Can create a user"); |
---|
45 | |
---|
46 | ok($unixb->commit, "Can save unix base"); |
---|
47 | |
---|
48 | |
---|
49 | ok(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"); |
---|
56 | is($user->get_field('shell'), '/bin/tcsh', 'Can get modified login shell'); |
---|
57 | |
---|
58 | system('rm', '-fr', $dir); |
---|