File: RunnerTest.pm

package info (click to toggle)
libtest-unit-perl 0.28-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,312 kB
  • sloc: perl: 4,299; makefile: 5
file content (89 lines) | stat: -rw-r--r-- 2,600 bytes parent folder | download | duplicates (7)
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
83
84
85
86
87
88
89
package RunnerTest;

use strict;

use Test::Unit::TestRunner;

use base 'Test::Unit::TestCase';

sub set_up {
    my $self = shift;
    open(DEVNULL, '>/dev/null') or die "Couldn't open(>/dev/null): $!";
    $self->{runner} = Test::Unit::TestRunner->new(\*DEVNULL);
}

sub tear_down {
    my $self = shift;
    close(DEVNULL);
}
    
sub test_reset_filtering {
    my $self = shift;

    $self->{runner}->filter('random_token');
    $self->{runner}->reset_filter;

    $self->assert(! $self->{runner}->start('FilteredSuite'),
                  "run wasn't supposed to succeed");
    my $result = $self->{runner}->result;
    $self->assert_num_equals(4, $result->run_count);
    $self->assert_num_equals(3, $result->error_count);
    $self->assert_num_equals(0, $result->failure_count);
}

sub test_filter_via_method_list {
    my $self = shift;

    $self->{runner}->filter('token_filtering_via_method_list');

    $self->assert(! $self->{runner}->start('FilteredSuite'),
                  "run wasn't supposed to succeed");
    my $result = $self->{runner}->result;
    $self->assert_num_equals(2, $result->run_count);
    $self->assert_num_equals(1, $result->error_count);
    $self->assert_num_equals(0, $result->failure_count);
}

sub test_filter_via_sub {
    my $self = shift;
    $self->{runner}->filter('token_filtering_via_sub');

    $self->assert(! $self->{runner}->start('FilteredSuite'),
                  "run wasn't supposed to succeed");
    my $result = $self->{runner}->result;
    $self->assert_num_equals(3, $result->run_count);
    $self->assert_num_equals(2, $result->error_count);
    $self->assert_num_equals(0, $result->failure_count);
}

sub test_filter_via_both {
    my $self = shift;
    $self->{runner}->filter(
        'token_filtering_via_method_list',
        'token_filtering_via_sub',
        'nonexistent_token', # this has to be allowed
    );

    $self->assert($self->{runner}->start('FilteredSuite'),
                  "run wasn't supposed to fail");
    my $result = $self->{runner}->result;
    $self->assert_num_equals(1, $result->run_count);
    $self->assert_num_equals(0, $result->error_count);
    $self->assert_num_equals(0, $result->failure_count);
}

sub test_filter_broken_token {
    my $self = shift;
    $self->{runner}->filter('broken_token');

    eval {
        $self->{runner}->start('FilteredSuite');
    };
    my $exception = $@; # have to save $@ otherwise the assertion messes it up
    $self->assert_str_equals(
        "Didn't understand filtering definition for token broken_token in FilteredSuite\n",
        $exception
    );
}

1;