[46] | 1 | use strict; |
---|
| 2 | use warnings; |
---|
[47] | 3 | use Test::More tests => 15; |
---|
[46] | 4 | use File::Temp; |
---|
| 5 | use File::Path; |
---|
| 6 | use Config::IniFiles; |
---|
| 7 | |
---|
[53] | 8 | use_ok('LATMOS::Accounts::Synchro'); |
---|
[46] | 9 | use_ok('LATMOS::Accounts'); |
---|
| 10 | |
---|
| 11 | my $workdir = File::Temp::tempdir(); |
---|
| 12 | |
---|
| 13 | my $config = Config::IniFiles->new(); |
---|
| 14 | |
---|
| 15 | $config->AddSection('source'); |
---|
| 16 | $config->newval('source', 'type', 'unix'); |
---|
| 17 | $config->newval('source', 'use_shadow', 1); |
---|
| 18 | $config->AddSection('dest'); |
---|
| 19 | $config->newval('dest', 'type', 'unix'); |
---|
| 20 | $config->newval('dest', 'use_shadow', 1); |
---|
| 21 | |
---|
| 22 | foreach (qw(passwd shadow group gshadow)) { |
---|
| 23 | system('cp', "testdata/synchro/dest/$_", "$workdir/$_"); |
---|
| 24 | $config->newval('source', $_, "testdata/synchro/source/$_"); |
---|
| 25 | $config->newval('dest', $_, "$workdir/$_"); |
---|
| 26 | } |
---|
| 27 | |
---|
[861] | 28 | ok($config->WriteConfig("$workdir/latmos-accounts.ini"), "can write config file for test"); |
---|
[46] | 29 | |
---|
| 30 | diag("Write test done in $workdir/"); |
---|
| 31 | |
---|
| 32 | isa_ok( |
---|
[861] | 33 | my $accounts = LATMOS::Accounts->new($workdir), |
---|
[46] | 34 | 'LATMOS::Accounts' |
---|
| 35 | ); |
---|
| 36 | |
---|
| 37 | ok($accounts->base('source'), "can get source base"); |
---|
| 38 | ok($accounts->base('dest'), "can get dest base"); |
---|
| 39 | |
---|
| 40 | my $synchro = LATMOS::Accounts::Synchro->new( |
---|
[49] | 41 | $accounts->base('source'), $accounts->base('dest'), |
---|
| 42 | state_file => "$workdir/status.ini", |
---|
[46] | 43 | ); |
---|
| 44 | |
---|
| 45 | isa_ok($synchro, 'LATMOS::Accounts::Synchro'); |
---|
| 46 | |
---|
| 47 | ok($synchro->process, "process get succefull"); |
---|
| 48 | |
---|
[47] | 49 | ok(my $unixb = LATMOS::Accounts::Bases->new( |
---|
| 50 | 'unix', |
---|
[1071] | 51 | { |
---|
| 52 | params => { |
---|
| 53 | passwd => "$workdir/passwd", |
---|
| 54 | shadow => "$workdir/shadow", |
---|
| 55 | group => "$workdir/group", |
---|
| 56 | gshadow => "$workdir/gshadow", |
---|
| 57 | } |
---|
| 58 | } |
---|
[47] | 59 | ), "Can get unix base"); |
---|
| 60 | isa_ok($unixb, 'LATMOS::Accounts::Bases::Unix'); |
---|
| 61 | ok($unixb->load, "Can load unix base"); |
---|
| 62 | |
---|
| 63 | { |
---|
| 64 | ok(my $user = $unixb->get_object('user', 'bin'), "Can get bin user"); |
---|
| 65 | is($user->get_c_field('homeDirectory'), '/bin', 'Can get homeDirectory directory'); |
---|
| 66 | } |
---|
| 67 | { |
---|
| 68 | ok(my $user = $unixb->get_object('user', 'adm'), "Can get adm user"); |
---|
[2411] | 69 | is($user->get_field('gecos'), 'adm', 'Can get gecos'); |
---|
[47] | 70 | } |
---|
| 71 | |
---|
[54] | 72 | rmtree($workdir); |
---|