[5] | 1 | use strict; |
---|
| 2 | use warnings; |
---|
[16] | 3 | use Test::More tests => 21; |
---|
[5] | 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'); |
---|
[13] | 9 | use_ok('LATMOS::Accounts::Bases::Unix::User'); |
---|
| 10 | use_ok('LATMOS::Accounts::Bases::Unix::Group'); |
---|
[5] | 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'); |
---|
[13] | 27 | ok($unixb->load, "Can load unix base"); |
---|
[5] | 28 | |
---|
[13] | 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 | |
---|
[14] | 34 | is($user->get_c_field('homeDirectory'), '/root', 'Can get homeDirectory directory'); |
---|
| 35 | is($user->get_field('home'), '/root', 'Can get home directory'); |
---|
[13] | 36 | |
---|
[14] | 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'); |
---|
[16] | 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"); |
---|
[14] | 45 | |
---|
[10] | 46 | ok($unixb->commit, "Can save unix base"); |
---|
[5] | 47 | |
---|
[14] | 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 | |
---|
[26] | 58 | system('rm', '-fr', $dir); |
---|