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 | |
---|
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 | |
---|
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 | |
---|
38 | ok($config->WriteConfig("$workdir/latmos-accounts.ini"), "can write config file for test"); |
---|
39 | |
---|
40 | diag("Write test done in $workdir/"); |
---|
41 | |
---|
42 | isa_ok( |
---|
43 | my $accounts = LATMOS::Accounts->new($workdir), |
---|
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); |
---|