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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
use strict;
use Test::Tester;
use Data::Dumper qw(Dumper);
my $test = Test::Builder->new;
$test->plan(tests => 54);
my $cap;
{
$cap = Test::Tester->capture;
my ($prem, @results) = run_tests(
sub {$cap->ok(1, "run pass")}
);
local $Test::Builder::Level = 0;
$test->is_eq($prem, "", "run pass no prem");
$test->is_num(scalar (@results), 1, "run pass result count");
my $res = $results[0];
$test->is_eq($res->{name}, "run pass", "run pass name");
$test->is_eq($res->{ok}, 1, "run pass ok");
$test->is_eq($res->{actual_ok}, 1, "run pass actual_ok");
$test->is_eq($res->{reason}, "", "run pass reason");
$test->is_eq($res->{type}, "", "run pass type");
$test->is_eq($res->{diag}, "", "run pass diag");
$test->is_num($res->{depth}, 0, "run pass depth");
}
{
my ($prem, @results) = run_tests(
sub {$cap->ok(0, "run fail")}
);
local $Test::Builder::Level = 0;
$test->is_eq($prem, "", "run fail no prem");
$test->is_num(scalar (@results), 1, "run fail result count");
my $res = $results[0];
$test->is_eq($res->{name}, "run fail", "run fail name");
$test->is_eq($res->{actual_ok}, 0, "run fail actual_ok");
$test->is_eq($res->{ok}, 0, "run fail ok");
$test->is_eq($res->{reason}, "", "run fail reason");
$test->is_eq($res->{type}, "", "run fail type");
$test->is_eq($res->{diag}, "", "run fail diag");
$test->is_num($res->{depth}, 0, "run fail depth");
}
{
my ($prem, @results) = run_tests(
sub {$cap->skip("just because")}
);
local $Test::Builder::Level = 0;
$test->is_eq($prem, "", "skip no prem");
$test->is_num(scalar (@results), 1, "skip result count");
my $res = $results[0];
$test->is_eq($res->{name}, "", "skip name");
$test->is_eq($res->{actual_ok}, 1, "skip actual_ok");
$test->is_eq($res->{ok}, 1, "skip ok");
$test->is_eq($res->{reason}, "just because", "skip reason");
$test->is_eq($res->{type}, "skip", "skip type");
$test->is_eq($res->{diag}, "", "skip diag");
$test->is_num($res->{depth}, 0, "skip depth");
}
{
my ($prem, @results) = run_tests(
sub {$cap->todo_skip("just because")}
);
local $Test::Builder::Level = 0;
$test->is_eq($prem, "", "todo_skip no prem");
$test->is_num(scalar (@results), 1, "todo_skip result count");
my $res = $results[0];
$test->is_eq($res->{name}, "", "todo_skip name");
$test->is_eq($res->{actual_ok}, 0, "todo_skip actual_ok");
$test->is_eq($res->{ok}, 1, "todo_skip ok");
$test->is_eq($res->{reason}, "just because", "todo_skip reason");
$test->is_eq($res->{type}, "todo_skip", "todo_skip type");
$test->is_eq($res->{diag}, "", "todo_skip diag");
$test->is_num($res->{depth}, 0, "todo_skip depth");
}
{
my ($prem, @results) = run_tests(
sub {$cap->diag("run diag")}
);
local $Test::Builder::Level = 0;
$test->is_eq($prem, "run diag\n", "run diag prem");
$test->is_num(scalar (@results), 0, "run diag result count");
}
{
my ($prem, @results) = run_tests(
sub {
$cap->ok(1, "multi pass");
$cap->diag("multi pass diag1");
$cap->diag("multi pass diag2");
$cap->ok(0, "multi fail");
$cap->diag("multi fail diag");
}
);
local $Test::Builder::Level = 0;
$test->is_eq($prem, "", "run multi no prem");
$test->is_num(scalar (@results), 2, "run multi result count");
my $res_pass = $results[0];
$test->is_eq($res_pass->{name}, "multi pass", "run multi pass name");
$test->is_eq($res_pass->{actual_ok}, 1, "run multi pass actual_ok");
$test->is_eq($res_pass->{ok}, 1, "run multi pass ok");
$test->is_eq($res_pass->{reason}, "", "run multi pass reason");
$test->is_eq($res_pass->{type}, "", "run multi pass type");
$test->is_eq($res_pass->{diag}, "multi pass diag1\nmulti pass diag2\n",
"run multi pass diag");
$test->is_num($res_pass->{depth}, 0, "run multi pass depth");
my $res_fail = $results[1];
$test->is_eq($res_fail->{name}, "multi fail", "run multi fail name");
$test->is_eq($res_pass->{actual_ok}, 1, "run multi fail actual_ok");
$test->is_eq($res_fail->{ok}, 0, "run multi fail ok");
$test->is_eq($res_pass->{reason}, "", "run multi fail reason");
$test->is_eq($res_pass->{type}, "", "run multi fail type");
$test->is_eq($res_fail->{diag}, "multi fail diag\n", "run multi fail diag");
$test->is_num($res_pass->{depth}, 0, "run multi fail depth");
}
|