[56] | 1 | use strict; |
---|
| 2 | use warnings; |
---|
| 3 | use Test::More tests => 8; |
---|
| 4 | use File::Temp; |
---|
| 5 | use File::Path; |
---|
| 6 | use Config::IniFiles; |
---|
| 7 | |
---|
| 8 | use_ok('LATMOS::Accounts::SynchAccess'); |
---|
| 9 | use_ok('LATMOS::Accounts'); |
---|
| 10 | |
---|
| 11 | my $workdir = File::Temp::tempdir(); |
---|
| 12 | mkdir "$workdir/source"; |
---|
| 13 | mkdir "$workdir/dest"; |
---|
| 14 | |
---|
| 15 | my $config = Config::IniFiles->new(); |
---|
| 16 | |
---|
| 17 | $config->AddSection('source'); |
---|
| 18 | $config->newval('source', 'type', 'unix'); |
---|
| 19 | $config->newval('source', 'use_shadow', 1); |
---|
| 20 | $config->AddSection('dest'); |
---|
| 21 | $config->newval('dest', 'type', 'unix'); |
---|
| 22 | $config->newval('dest', 'use_shadow', 1); |
---|
| 23 | $config->newval('source', 'push', 'dest'); |
---|
| 24 | |
---|
[1406] | 25 | $config->AddSection('_default_'); |
---|
| 26 | $config->newval('_default_', 'sync', 'main'); |
---|
| 27 | $config->AddSection('sync:main'); |
---|
| 28 | $config->newval('sync:main', 'from', 'source'); |
---|
| 29 | $config->newval('sync:main', 'to', 'dest'); |
---|
| 30 | |
---|
[56] | 31 | foreach my $dir (qw(source dest)) { |
---|
| 32 | foreach (qw(passwd shadow group gshadow)) { |
---|
| 33 | system('cp', "testdata/synchro/$dir/$_", "$workdir/$dir/$_"); |
---|
| 34 | $config->newval($dir, $_, "testdata/synchro/$dir/$_"); |
---|
| 35 | } |
---|
| 36 | } |
---|
| 37 | |
---|
[861] | 38 | ok($config->WriteConfig("$workdir/latmos-accounts.ini"), "can write config file for test"); |
---|
[56] | 39 | |
---|
| 40 | diag("Write test done in $workdir/"); |
---|
| 41 | |
---|
| 42 | isa_ok( |
---|
[861] | 43 | my $accounts = LATMOS::Accounts->new($workdir), |
---|
[56] | 44 | 'LATMOS::Accounts' |
---|
| 45 | ); |
---|
| 46 | |
---|
| 47 | ok($accounts->base('source'), "can get source base"); |
---|
| 48 | ok($accounts->base('dest'), "can get dest base"); |
---|
| 49 | |
---|
| 50 | isa_ok(my $syncaccess = $accounts->sync_access, 'LATMOS::Accounts::SynchAccess'); |
---|
| 51 | isa_ok($syncaccess->get_object('user', 'root'), 'LATMOS::Accounts::SynchAccess::Objects'); |
---|
| 52 | |
---|
| 53 | $syncaccess->type; |
---|
| 54 | $syncaccess->label; |
---|
| 55 | |
---|
| 56 | rmtree($workdir); |
---|