File Coverage

File:t/lib/ShellTest.pm
Coverage:100.0%

linestmtbrancondsubpodtimecode
1
2
2
2
0
0
0
use strict;
2
2
2
2
0
0
0
use warnings;
3
4package ShellTest;
5
6
2
2
2
0
0
0
use parent 'Test::Class::TestGroup';
7
8
2
2
2
0
0
0
use Test::More;
9
2
2
2
0
0
0
use Test::BinRegression;
10
2
2
2
0
0
0
use File::Slurp 'read_file';
11
12
2
2
2
0
0
0
use Code::Statistics::App;
13
14sub make_fixture : Test(setup) {
15
4
0
    my ( $self ) = @_;
16
17
4
0
    $self->{basic_collect_args} = [ qw(
18        collect
19        --dirs=data/shelltest/basic_collect
20        --relative_paths
21        --foreign_paths=Unix
22        --conf_file=data/config/shelltestrc
23        --global_conf_file=data/config/does_not_exist
24    ) ];
25
26
4
0
    return;
27
2
2
2
0
0
0
}
28
29sub basic_collect : TestGroup {
30
2
0
    my ( $self ) = @_;
31
32
2
2
0
0
    local @ARGV = @{ $self->{basic_collect_args} };
33
34
2
0
    $self->check_codestat_shell_app_against( "data/json/basic_collect.json" );
35
36
2
0
    ok( -e 'codestat.out', 'output file is generated' );
37
38    ok_regression(
39
2
0
        sub { $self->get_codestat_out_file },
40
2
0
        "data/json/basic_collect.json",
41        'dumped file matches expected output'
42    );
43
44
2
0
    @ARGV = qw( report --quiet --file_ignore=;Ignored );
45
46
2
0
    $self->check_codestat_shell_app_against( "data/json/basic_report.json" );
47
48
2
0
    unlink( 'codestat.out' );
49
50
2
0
    return;
51
2
2
2
0
0
0
}
52
53sub nodump_collect : TestGroup {
54
2
0
    my ( $self ) = @_;
55
56
2
0
    local @ARGV = (
57
2
0
        @{$self->{basic_collect_args}},
58        qw( --no_dump )
59    );
60
61
2
0
    $self->check_codestat_shell_app_against( "data/json/basic_collect.json" );
62
63
2
0
    ok( !-e 'codestat.out', '--no_dump does not generate a file' );
64
65
2
0
    return;
66
2
2
2
0
0
0
}
67
68sub check_codestat_shell_app_against {
69
6
0
    my ( $self, $file ) = @_;
70
71    ok_regression(
72        sub {
73
6
0
            my $result = Code::Statistics::App->run;
74
6
0
            return $result;
75        },
76
6
0
        $file,
77        'returned string matches expected output',
78        'binmode',
79    );
80
81
6
0
    return;
82}
83
84sub get_codestat_out_file {
85
2
0
    my $result = read_file('codestat.out');
86
2
0
    return $result;
87}
88
891;