File Coverage

File:t/deploy.t
Coverage:98.7%

linestmtbrancondsubpodtimecode
1
1
1
1
49012
4
56
use strict;
2
1
1
1
6
3
33
use warnings;
3
4
1
1
1
546
60663
25
use Test::Most;
5
1
1
1
122280
6
191
use File::Path 'mkpath';
6
1
1
1
643
1192
8
use lib 't';
7
1
1
1
4189
4
7800
use TestLib qw( t_module t_startup t_teardown t_capture t_action_files );
8
9
1
223461
exit main();
10
11sub main {
12
1
11
    require_ok( t_module() );
13
14
1
486
    t_startup();
15
1
7
    t_action_files('adt/state');
16
1
7
    t_module->init;
17
1
6
    t_module->add('adt');
18
19
1
5
    deploy();
20
21
1
2195
    t_teardown();
22
1
32
    done_testing();
23
1
603
    return 0;
24}
25
26sub deploy {
27    is (
28
1
1
6
10
        ( t_capture( sub { t_module->verify } ) )[0],
29        "not ok - verify: adt/state\n",
30        'verify all existing actions returns false',
31    );
32    is (
33
1
1
7520
43
        ( t_capture( sub { t_module->verify('adt/state') } ) )[0],
34        "not ok - verify: adt/state\n",
35        'verify undeployed action returns false',
36    );
37
38
39    is (
40
1
1
9442
221
        ( t_capture( sub { t_module->deploy } ) )[2],
41        "File to deploy required; usage: dest deploy file\n",
42        'deploy without action fails',
43    );
44    is (
45
1
1
15730
7
        ( t_capture( sub { t_module->deploy('adt/state') } ) )[0],
46        join( "\n",
47           'begin - deploy: adt/state',
48           'ok - deploy: adt/state',
49           'ok - verify: adt/state',
50        ) . "\n",
51       'deploy with action succeeds',
52    );
53
54    is (
55
1
1
10791
153
        ( t_capture( sub { t_module->verify } ) )[0],
56        "ok - verify: adt/state\n",
57        'verify all existing actions returns true',
58    );
59    is (
60
1
1
10909
55
        ( t_capture( sub { t_module->verify('adt/state') } ) )[0],
61        "ok - verify: adt/state\n",
62        'verify undeployed action returns true',
63    );
64
65    is (
66
1
1
9038
93
        ( t_capture( sub { t_module->revert } ) )[2],
67        "File to revert required; usage: dest revert file\n",
68        'revert without action throws error',
69    );
70    is (
71
1
1
3803
27
        ( t_capture( sub { t_module->revert('adt/state') } ) )[0],
72        join( "\n",
73            'begin - revert: adt/state',
74            'ok - revert: adt/state',
75        ) . "\n",
76        'revert with action succeeds',
77    );
78
79
1
1
15566
153
    t_capture( sub { t_module->deploy('adt/state') } );
80    is (
81
1
1
832
865
       ( t_capture( sub { t_module->redeploy('adt/state') } ) )[0],
82        join( "\n",
83           'begin - deploy: adt/state',
84           'ok - deploy: adt/state',
85           'ok - verify: adt/state',
86        ) . "\n",
87       'redeploy with action succeeds',
88    );
89
90
1
2682
    my $state_file;
91
1
108
    ok( open( $state_file, '<', 'state_adt_state.txt' ) || 0, 'open state_adt_state.txt file' );
92
1
1180
    my @lines = <$state_file>;
93
1
3
7
43
    is( scalar( grep { /^adt\/state$/ } @lines ), 2, 'redeploy state check passes' );
94
95    is (
96
1
1
442
86
        ( t_capture( sub { t_module->revdeploy('adt/state') } ) )[0],
97        join( "\n",
98            'begin - revert: adt/state',
99            'ok - revert: adt/state',
100            'begin - deploy: adt/state',
101            'ok - deploy: adt/state',
102            'ok - verify: adt/state',
103        ) . "\n",
104        'revdeploy with action succeeds',
105    );
106}