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;
|