1 | use strict; |
---|
2 | use warnings; |
---|
3 | use Test::More tests => 15; |
---|
4 | use File::Temp; |
---|
5 | use File::Path; |
---|
6 | use Config::IniFiles; |
---|
7 | |
---|
8 | use_ok('LATMOS::Accounts::Synchro'); |
---|
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 | |
---|
28 | ok($config->WriteConfig("$workdir/latmos-accounts.ini"), "can write config file for test"); |
---|
29 | |
---|
30 | diag("Write test done in $workdir/"); |
---|
31 | |
---|
32 | isa_ok( |
---|
33 | my $accounts = LATMOS::Accounts->new($workdir), |
---|
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( |
---|
41 | $accounts->base('source'), $accounts->base('dest'), |
---|
42 | state_file => "$workdir/status.ini", |
---|
43 | ); |
---|
44 | |
---|
45 | isa_ok($synchro, 'LATMOS::Accounts::Synchro'); |
---|
46 | |
---|
47 | ok($synchro->process, "process get succefull"); |
---|
48 | |
---|
49 | ok(my $unixb = LATMOS::Accounts::Bases->new( |
---|
50 | 'unix', |
---|
51 | { |
---|
52 | params => { |
---|
53 | passwd => "$workdir/passwd", |
---|
54 | shadow => "$workdir/shadow", |
---|
55 | group => "$workdir/group", |
---|
56 | gshadow => "$workdir/gshadow", |
---|
57 | } |
---|
58 | } |
---|
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"); |
---|
69 | is($user->get_field('gecos'), 'adm', 'Can get home directory'); |
---|
70 | } |
---|
71 | |
---|
72 | rmtree($workdir); |
---|