1*5759b3d2Safresh1use strict; 2*5759b3d2Safresh1use warnings; 3*5759b3d2Safresh1 4*5759b3d2Safresh1use Test2::Tools::Tiny; 5*5759b3d2Safresh1use Test2::EventFacet::Trace; 6*5759b3d2Safresh1use Test2::Event::Ok; 7*5759b3d2Safresh1use Test2::Event::Diag; 8*5759b3d2Safresh1 9*5759b3d2Safresh1use Test2::API qw/context/; 10*5759b3d2Safresh1 11*5759b3d2Safresh1my $trace; 12*5759b3d2Safresh1sub before_each { 13*5759b3d2Safresh1 # Make sure there is a fresh trace object for each group 14*5759b3d2Safresh1 $trace = Test2::EventFacet::Trace->new( 15*5759b3d2Safresh1 frame => ['main_foo', 'foo.t', 42, 'main_foo::flubnarb'], 16*5759b3d2Safresh1 ); 17*5759b3d2Safresh1} 18*5759b3d2Safresh1 19*5759b3d2Safresh1tests Passing => sub { 20*5759b3d2Safresh1 my $ok = Test2::Event::Ok->new( 21*5759b3d2Safresh1 trace => $trace, 22*5759b3d2Safresh1 pass => 1, 23*5759b3d2Safresh1 name => 'the_test', 24*5759b3d2Safresh1 ); 25*5759b3d2Safresh1 ok($ok->increments_count, "Bumps the count"); 26*5759b3d2Safresh1 ok(!$ok->causes_fail, "Passing 'OK' event does not cause failure"); 27*5759b3d2Safresh1 is($ok->pass, 1, "got pass"); 28*5759b3d2Safresh1 is($ok->name, 'the_test', "got name"); 29*5759b3d2Safresh1 is($ok->effective_pass, 1, "effective pass"); 30*5759b3d2Safresh1 is($ok->summary, "the_test", "Summary is just the name of the test"); 31*5759b3d2Safresh1 32*5759b3d2Safresh1 my $facet_data = $ok->facet_data; 33*5759b3d2Safresh1 ok($facet_data->{about}, "got common facet data"); 34*5759b3d2Safresh1 ok(!$facet_data->{amnesty}, "No amnesty by default"); 35*5759b3d2Safresh1 is_deeply( 36*5759b3d2Safresh1 $facet_data->{assert}, 37*5759b3d2Safresh1 { 38*5759b3d2Safresh1 no_debug => 1, 39*5759b3d2Safresh1 pass => 1, 40*5759b3d2Safresh1 details => 'the_test', 41*5759b3d2Safresh1 }, 42*5759b3d2Safresh1 "Got assert facet", 43*5759b3d2Safresh1 ); 44*5759b3d2Safresh1 45*5759b3d2Safresh1 46*5759b3d2Safresh1 $ok = Test2::Event::Ok->new( 47*5759b3d2Safresh1 trace => $trace, 48*5759b3d2Safresh1 pass => 1, 49*5759b3d2Safresh1 name => '', 50*5759b3d2Safresh1 ); 51*5759b3d2Safresh1 is($ok->summary, "Nameless Assertion", "Nameless test"); 52*5759b3d2Safresh1 53*5759b3d2Safresh1 $facet_data = $ok->facet_data; 54*5759b3d2Safresh1 ok($facet_data->{about}, "got common facet data"); 55*5759b3d2Safresh1 ok(!$facet_data->{amnesty}, "No amnesty by default"); 56*5759b3d2Safresh1 is_deeply( 57*5759b3d2Safresh1 $facet_data->{assert}, 58*5759b3d2Safresh1 { 59*5759b3d2Safresh1 no_debug => 1, 60*5759b3d2Safresh1 pass => 1, 61*5759b3d2Safresh1 details => '', 62*5759b3d2Safresh1 }, 63*5759b3d2Safresh1 "Got assert facet", 64*5759b3d2Safresh1 ); 65*5759b3d2Safresh1}; 66*5759b3d2Safresh1 67*5759b3d2Safresh1tests Failing => sub { 68*5759b3d2Safresh1 local $ENV{HARNESS_ACTIVE} = 1; 69*5759b3d2Safresh1 local $ENV{HARNESS_IS_VERBOSE} = 1; 70*5759b3d2Safresh1 my $ok = Test2::Event::Ok->new( 71*5759b3d2Safresh1 trace => $trace, 72*5759b3d2Safresh1 pass => 0, 73*5759b3d2Safresh1 name => 'the_test', 74*5759b3d2Safresh1 ); 75*5759b3d2Safresh1 ok($ok->increments_count, "Bumps the count"); 76*5759b3d2Safresh1 ok($ok->causes_fail, "A failing test causes failures"); 77*5759b3d2Safresh1 is($ok->pass, 0, "got pass"); 78*5759b3d2Safresh1 is($ok->name, 'the_test', "got name"); 79*5759b3d2Safresh1 is($ok->effective_pass, 0, "effective pass"); 80*5759b3d2Safresh1 is($ok->summary, "the_test", "Summary is just the name of the test"); 81*5759b3d2Safresh1 82*5759b3d2Safresh1 my $facet_data = $ok->facet_data; 83*5759b3d2Safresh1 ok($facet_data->{about}, "got common facet data"); 84*5759b3d2Safresh1 ok(!$facet_data->{amnesty}, "No amnesty by default"); 85*5759b3d2Safresh1 is_deeply( 86*5759b3d2Safresh1 $facet_data->{assert}, 87*5759b3d2Safresh1 { 88*5759b3d2Safresh1 no_debug => 1, 89*5759b3d2Safresh1 pass => 0, 90*5759b3d2Safresh1 details => 'the_test', 91*5759b3d2Safresh1 }, 92*5759b3d2Safresh1 "Got assert facet", 93*5759b3d2Safresh1 ); 94*5759b3d2Safresh1}; 95*5759b3d2Safresh1 96*5759b3d2Safresh1tests "Failing TODO" => sub { 97*5759b3d2Safresh1 local $ENV{HARNESS_ACTIVE} = 1; 98*5759b3d2Safresh1 local $ENV{HARNESS_IS_VERBOSE} = 1; 99*5759b3d2Safresh1 my $ok = Test2::Event::Ok->new( 100*5759b3d2Safresh1 trace => $trace, 101*5759b3d2Safresh1 pass => 0, 102*5759b3d2Safresh1 name => 'the_test', 103*5759b3d2Safresh1 todo => 'A Todo', 104*5759b3d2Safresh1 ); 105*5759b3d2Safresh1 ok($ok->increments_count, "Bumps the count"); 106*5759b3d2Safresh1 is($ok->pass, 0, "got pass"); 107*5759b3d2Safresh1 is($ok->name, 'the_test', "got name"); 108*5759b3d2Safresh1 is($ok->effective_pass, 1, "effective pass is true from todo"); 109*5759b3d2Safresh1 is($ok->summary, "the_test (TODO: A Todo)", "Summary is just the name of the test + todo"); 110*5759b3d2Safresh1 111*5759b3d2Safresh1 my $facet_data = $ok->facet_data; 112*5759b3d2Safresh1 ok($facet_data->{about}, "got common facet data"); 113*5759b3d2Safresh1 is_deeply( 114*5759b3d2Safresh1 $facet_data->{assert}, 115*5759b3d2Safresh1 { 116*5759b3d2Safresh1 no_debug => 1, 117*5759b3d2Safresh1 pass => 0, 118*5759b3d2Safresh1 details => 'the_test', 119*5759b3d2Safresh1 }, 120*5759b3d2Safresh1 "Got assert facet", 121*5759b3d2Safresh1 ); 122*5759b3d2Safresh1 is_deeply( 123*5759b3d2Safresh1 $facet_data->{amnesty}, 124*5759b3d2Safresh1 [{ 125*5759b3d2Safresh1 tag => 'TODO', 126*5759b3d2Safresh1 details => 'A Todo', 127*5759b3d2Safresh1 }], 128*5759b3d2Safresh1 "Got amnesty facet", 129*5759b3d2Safresh1 ); 130*5759b3d2Safresh1 131*5759b3d2Safresh1 132*5759b3d2Safresh1 $ok = Test2::Event::Ok->new( 133*5759b3d2Safresh1 trace => $trace, 134*5759b3d2Safresh1 pass => 0, 135*5759b3d2Safresh1 name => 'the_test2', 136*5759b3d2Safresh1 todo => '', 137*5759b3d2Safresh1 ); 138*5759b3d2Safresh1 ok($ok->effective_pass, "empty string todo is still a todo"); 139*5759b3d2Safresh1 is($ok->summary, "the_test2 (TODO)", "Summary is just the name of the test + todo"); 140*5759b3d2Safresh1 141*5759b3d2Safresh1 $facet_data = $ok->facet_data; 142*5759b3d2Safresh1 ok($facet_data->{about}, "got common facet data"); 143*5759b3d2Safresh1 is_deeply( 144*5759b3d2Safresh1 $facet_data->{assert}, 145*5759b3d2Safresh1 { 146*5759b3d2Safresh1 no_debug => 1, 147*5759b3d2Safresh1 pass => 0, 148*5759b3d2Safresh1 details => 'the_test2', 149*5759b3d2Safresh1 }, 150*5759b3d2Safresh1 "Got assert facet", 151*5759b3d2Safresh1 ); 152*5759b3d2Safresh1 is_deeply( 153*5759b3d2Safresh1 $facet_data->{amnesty}, 154*5759b3d2Safresh1 [{ 155*5759b3d2Safresh1 tag => 'TODO', 156*5759b3d2Safresh1 details => '', 157*5759b3d2Safresh1 }], 158*5759b3d2Safresh1 "Got amnesty facet", 159*5759b3d2Safresh1 ); 160*5759b3d2Safresh1 161*5759b3d2Safresh1}; 162*5759b3d2Safresh1 163*5759b3d2Safresh1tests init => sub { 164*5759b3d2Safresh1 my $ok = Test2::Event::Ok->new( 165*5759b3d2Safresh1 trace => $trace, 166*5759b3d2Safresh1 pass => 1, 167*5759b3d2Safresh1 ); 168*5759b3d2Safresh1 is($ok->effective_pass, 1, "set effective pass"); 169*5759b3d2Safresh1}; 170*5759b3d2Safresh1 171*5759b3d2Safresh1done_testing; 172