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
|
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 35;
my $m;
BEGIN { use_ok($m = "Test::TAP::Model") }
isa_ok(my $t = $m->new, $m);
isa_ok($t, "Test::Harness::Straps");
can_ok($t, "start_file");
my $e = $t->start_file("example");
$e->{results} = $t->analyze_fh("example", \*DATA);
isa_ok(my $s = $t->structure, "HASH");
is_deeply([ sort keys %$s ], [ "test_files" ], "keys of structure");
is(@{ $s->{test_files} }, 1, "one test file");
my $f = $s->{test_files}[0];
is_deeply([ sort keys %$f ], [ sort qw/file results events/ ], "keys of file hash");
is(my @e = @{$f->{events}}, 3, "three events");
# this compares the hash structures to the ones we expect to get
# from Test::Harness::Straps events
is($e[0]->{type}, "test", "first event is a test");
ok($e[0]->{ok}, "it passed");
ok(!$e[0]->{diag}, "no diagnosis");
is($e[1]{type}, "test", "second event is a test");
ok(!$e[1]->{ok}, "it failed");
like($e[1]->{diag}, qr/expected/, "it has diagnosis");
is($e[2]{type}, "test", "third event is a test");
ok($e[2]{todo}, "it's a todo test");
like($e[1]->{diag}, qr/expected/, "it has diagnosis");
is( scalar($t->test_files), 1, "one test file" );
my $f_obj = ($t->test_files)[0];
is( ( $f_obj->subtests )[0]->diag, "", "first subtest has no diag" );
like( ( $f_obj->subtests )[1]->diag, qr/expected/, "second subtest does have diag" );
# this is the return from analyze_foo
ok(exists($f->{results}), "file wide results also exist");
is($f->{results}{seen}, 3, "total of three tests");
is($f->{results}{ok}, 2, "two tests ok");
ok(!$f->{results}{passed}, "file did not pass");
# These will die in Test::TAP::Model
eval '$t->get_tests()';
ok($@, "Test::TAP::Model dies when calling get_tests()");
eval '$t->run()';
ok($@, "Test::TAP::Model dies when calling run()");
# Try new_with_struct
$s = $t->structure;
my $t2 = Test::TAP::Model->new_with_struct($s);
isa_ok($t2, $m);
isa_ok($t2, "Test::Harness::Straps");
# Try new_with_tests
my $t3 = Test::TAP::Model->new_with_tests($s->{test_files});
isa_ok($t3, $m);
isa_ok($t3, "Test::Harness::Straps");
# Call latest_event with a parameter
my $t4 = new $m;
isa_ok($t4, $m);
isa_ok($t4, "Test::Harness::Straps");
my %event = ();
$event{type} = 'test';
$event{todo} = 1;
$t4->latest_event(%event);
isa_ok(my $l = $t4->latest_event, "HASH");
is_deeply([ sort keys %$l], [ sort qw/type todo/],
"Test latest_event with parameters");
__DATA__
1..3
ok 1 - foo
not ok 2 - bar
# Failed test (t/example.t at line 9)
# got: '1'
# expected: '2'
not ok 3 - gorch # TODO not yet
# Failed (TODO) test (t/example.t at line 12)
# got: '2'
# expected: '4'
# Looks like you failed 1 test of 3.
|