File: modules.t

package info (click to toggle)
libcpan-audit-perl 20250829.001-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 336 kB
  • sloc: perl: 909; makefile: 8
file content (82 lines) | stat: -rw-r--r-- 3,007 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
use strict;
use warnings;
use lib 't/lib';
use Test::More;
use TestCommand;

subtest 'command: modules' => sub {
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'CPAN' );

    like $stdout, qr/CPANSA-CPAN-2009-01/;
    like $stdout, qr/CPANSA-CPAN-2020-16156/;
    is $stderr,   '' or diag( "STDOUT:---\n$stdout\n---\n" );
    isnt $exit,   0;
};

subtest 'command: modules with two modules' => sub {
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'CPAN', 'Mojolicious;>8.40,<9.20' );

    like $stdout, qr/CPANSA-CPAN-2009-01/;
    like $stdout, qr/CPANSA-CPAN-2020-16156/;
    like $stdout, qr/CPANSA-Mojolicious-2022-03/;
    is $stderr,   '' or diag( "STDOUT:---\n$stdout\n---\n" );
    isnt $exit,   0;
};

subtest 'command: modules, with excluded result' => sub {
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'CPAN', 'Mojolicious;>8.40,<9.20','--exclude' => 'CPANSA-CPAN-2009-01', '--exclude' => 'CPANSA-Mojolicious-2022-03' );
    unlike $stdout, qr/CPANSA-CPAN-2009-01/;
    like $stdout, qr/CPANSA-CPAN-2020-16156/;
    unlike $stdout, qr/CPANSA-Mojolicious-2022-03/;
    is $stderr,   '' or diag( "STDOUT:---\n$stdout\n---\n" );
    isnt $exit,   0;
};

subtest 'command: modules, with excluded results from file' => sub {
    my $file = 't/data/modules_excludes';
    ok( -e $file, 'File that should be there is there' );
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'CPAN', 'Mojolicious;>8.40,<9.20', '--exclude-file' => $file );

    unlike $stdout, qr/CPANSA-CPAN-2009-01/;
    like $stdout, qr/CPANSA-CPAN-2020-16156/;
    unlike $stdout, qr/CPANSA-Mojolicious-2022-03/;
    is $stderr,   '' or diag( "STDOUT:---\n$stdout\n---\n" );
    isnt $exit,   0;
};

subtest 'command: modules, with excluded results from non-existent file' => sub {
    my $file = 't/data/not-there';
    ok( ! -e $file, 'File that should not exist is not there' );
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'CPAN', 'Mojolicious;>8.40,<9.20', '--exclude-file' => $file );

    like $stdout, qr/CPANSA-CPAN-2009-01/;
    like $stdout, qr/CPANSA-CPAN-2020-16156/;
    like $stdout, qr/CPANSA-Mojolicious-2022-03/;

    like $stderr, qr/unable to open exclude_file/;
};

subtest 'command: unknown modules' => sub {
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'Unknown' );

    like $stderr, qr/Module 'Unknown' is not in database/;
    is $stdout,  '';
};

subtest 'command: unknown modules (mixed)' => sub {
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules', 'CPAN', 'Unknown' );

    like $stderr, qr/Module 'Unknown' is not in database/;
    like $stdout, qr/CPANSA-CPAN-2009-01/;
    like $stdout, qr/CPANSA-CPAN-2020-16156/;
};

subtest 'command: invalid invocation' => sub {
    my ( $stdout, $stderr, $exit ) = TestCommand->command( 'modules' );

    is $stdout,   '';
    like $stderr, qr/Error: Usage: /;
    isnt $exit,   0;
};

done_testing;