1use strict; 2use warnings; 3 4use Test2::Tools::Tiny; 5use Test2::Event::Subtest; 6my $st = 'Test2::Event::Subtest'; 7 8my $trace = Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__, 'xxx']); 9my $one = $st->new( 10 trace => $trace, 11 pass => 1, 12 buffered => 1, 13 name => 'foo', 14 subtest_id => "1-1-1", 15); 16 17ok($one->isa('Test2::Event::Ok'), "Inherit from Ok"); 18is_deeply($one->subevents, [], "subevents is an arrayref"); 19 20is($one->summary, "foo", "simple summary"); 21$one->set_todo(''); 22is($one->summary, "foo (TODO)", "simple summary + TODO"); 23$one->set_todo('foo'); 24is($one->summary, "foo (TODO: foo)", "simple summary + TODO + Reason"); 25 26$one->set_todo(undef); 27$one->set_name(''); 28is($one->summary, "Nameless Subtest", "unnamed summary"); 29 30require Test2::Event::Pass; 31push @{$one->subevents} => Test2::Event::Pass->new(name => 'xxx'); 32 33my $facet_data = $one->facet_data; 34ok($facet_data->{about}, "got parent facet data"); 35 36is_deeply( 37 $facet_data->{parent}, 38 { 39 hid => "1-1-1", 40 buffered => 1, 41 children => [ 42 { 43 about => { 44 details => 'pass', 45 package => 'Test2::Event::Pass', 46 eid => $one->subevents->[0]->eid, 47 }, 48 assert => { 49 details => 'xxx', 50 pass => 1 51 }, 52 } 53 ], 54 }, 55 "Got facet data" 56); 57 58$one->{start_stamp} = 123; 59$one->{stop_stamp} = 456; 60 61$facet_data = $one->facet_data; 62is_deeply( 63 $facet_data->{parent}, 64 { 65 hid => "1-1-1", 66 buffered => 1, 67 start_stamp => 123, 68 stop_stamp => 456, 69 children => [ 70 { 71 about => { 72 details => 'pass', 73 package => 'Test2::Event::Pass', 74 eid => $one->subevents->[0]->eid, 75 }, 76 assert => { 77 details => 'xxx', 78 pass => 1 79 }, 80 } 81 ], 82 }, 83 "Got facet data with stamps" 84); 85 86 87done_testing; 88