1*5759b3d2Safresh1use strict; 2*5759b3d2Safresh1use warnings; 3*5759b3d2Safresh1 4*5759b3d2Safresh1use Test2::Tools::Tiny; 5*5759b3d2Safresh1use Test2::Event::Plan; 6*5759b3d2Safresh1use Test2::EventFacet::Trace; 7*5759b3d2Safresh1 8*5759b3d2Safresh1my $plan = Test2::Event::Plan->new( 9*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 10*5759b3d2Safresh1 max => 100, 11*5759b3d2Safresh1); 12*5759b3d2Safresh1 13*5759b3d2Safresh1is($plan->summary, "Plan is 100 assertions", "simple summary"); 14*5759b3d2Safresh1is_deeply( [$plan->sets_plan], [100, '', undef], "Got plan details"); 15*5759b3d2Safresh1 16*5759b3d2Safresh1ok(!$plan->global, "regular plan is not a global event"); 17*5759b3d2Safresh1is($plan->terminate, undef, "No terminate for normal plan"); 18*5759b3d2Safresh1 19*5759b3d2Safresh1$plan->set_max(0); 20*5759b3d2Safresh1$plan->set_directive('SKIP'); 21*5759b3d2Safresh1$plan->set_reason('foo'); 22*5759b3d2Safresh1is($plan->terminate, 0, "Terminate 0 on skip_all"); 23*5759b3d2Safresh1 24*5759b3d2Safresh1is($plan->summary, "Plan is 'SKIP', foo", "skip summary"); 25*5759b3d2Safresh1is_deeply( [$plan->sets_plan], [0, 'SKIP', 'foo'], "Got skip details"); 26*5759b3d2Safresh1 27*5759b3d2Safresh1$plan->set_max(0); 28*5759b3d2Safresh1$plan->set_directive('NO PLAN'); 29*5759b3d2Safresh1$plan->set_reason(undef); 30*5759b3d2Safresh1is($plan->summary, "Plan is 'NO PLAN'", "NO PLAN summary"); 31*5759b3d2Safresh1is_deeply( [$plan->sets_plan], [0, 'NO PLAN', undef], "Got 'NO PLAN' details"); 32*5759b3d2Safresh1is($plan->terminate, undef, "No terminate for no_plan"); 33*5759b3d2Safresh1$plan->set_max(100); 34*5759b3d2Safresh1$plan->set_directive(undef); 35*5759b3d2Safresh1 36*5759b3d2Safresh1$plan = Test2::Event::Plan->new( 37*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 38*5759b3d2Safresh1 max => 0, 39*5759b3d2Safresh1 directive => 'skip_all', 40*5759b3d2Safresh1); 41*5759b3d2Safresh1is($plan->directive, 'SKIP', "Change skip_all to SKIP"); 42*5759b3d2Safresh1 43*5759b3d2Safresh1$plan = Test2::Event::Plan->new( 44*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 45*5759b3d2Safresh1 max => 0, 46*5759b3d2Safresh1 directive => 'no_plan', 47*5759b3d2Safresh1); 48*5759b3d2Safresh1is($plan->directive, 'NO PLAN', "Change no_plan to 'NO PLAN'"); 49*5759b3d2Safresh1ok(!$plan->global, "NO PLAN is not global"); 50*5759b3d2Safresh1 51*5759b3d2Safresh1like( 52*5759b3d2Safresh1 exception { 53*5759b3d2Safresh1 $plan = Test2::Event::Plan->new( 54*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 55*5759b3d2Safresh1 max => 0, 56*5759b3d2Safresh1 directive => 'foo', 57*5759b3d2Safresh1 ); 58*5759b3d2Safresh1 }, 59*5759b3d2Safresh1 qr/'foo' is not a valid plan directive/, 60*5759b3d2Safresh1 "Invalid Directive" 61*5759b3d2Safresh1); 62*5759b3d2Safresh1 63*5759b3d2Safresh1like( 64*5759b3d2Safresh1 exception { 65*5759b3d2Safresh1 $plan = Test2::Event::Plan->new( 66*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 67*5759b3d2Safresh1 max => 0, 68*5759b3d2Safresh1 reason => 'foo', 69*5759b3d2Safresh1 ); 70*5759b3d2Safresh1 }, 71*5759b3d2Safresh1 qr/Cannot have a reason without a directive!/, 72*5759b3d2Safresh1 "Reason without directive" 73*5759b3d2Safresh1); 74*5759b3d2Safresh1 75*5759b3d2Safresh1like( 76*5759b3d2Safresh1 exception { 77*5759b3d2Safresh1 $plan = Test2::Event::Plan->new( 78*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 79*5759b3d2Safresh1 ); 80*5759b3d2Safresh1 }, 81*5759b3d2Safresh1 qr/No number of tests specified/, 82*5759b3d2Safresh1 "Nothing to do" 83*5759b3d2Safresh1); 84*5759b3d2Safresh1 85*5759b3d2Safresh1like( 86*5759b3d2Safresh1 exception { 87*5759b3d2Safresh1 $plan = Test2::Event::Plan->new( 88*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 89*5759b3d2Safresh1 max => 'skip', 90*5759b3d2Safresh1 ); 91*5759b3d2Safresh1 }, 92*5759b3d2Safresh1 qr/Plan test count 'skip' does not appear to be a valid positive integer/, 93*5759b3d2Safresh1 "Max must be an integer" 94*5759b3d2Safresh1); 95*5759b3d2Safresh1 96*5759b3d2Safresh1$plan = Test2::Event::Plan->new( 97*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 98*5759b3d2Safresh1 max => 100, 99*5759b3d2Safresh1); 100*5759b3d2Safresh1 101*5759b3d2Safresh1my $facet_data = $plan->facet_data; 102*5759b3d2Safresh1ok($facet_data->{about}, "Got common facet data"); 103*5759b3d2Safresh1is($facet_data->{control}->{terminate}, undef, "no termination defined"); 104*5759b3d2Safresh1is_deeply( 105*5759b3d2Safresh1 $facet_data->{plan}, 106*5759b3d2Safresh1 {count => 100}, 107*5759b3d2Safresh1 "Set the count" 108*5759b3d2Safresh1); 109*5759b3d2Safresh1 110*5759b3d2Safresh1$plan = Test2::Event::Plan->new( 111*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 112*5759b3d2Safresh1 max => 0, 113*5759b3d2Safresh1 directive => 'NO PLAN', 114*5759b3d2Safresh1); 115*5759b3d2Safresh1 116*5759b3d2Safresh1$facet_data = $plan->facet_data; 117*5759b3d2Safresh1ok($facet_data->{about}, "Got common facet data"); 118*5759b3d2Safresh1is($facet_data->{control}->{terminate}, undef, "no termination defined"); 119*5759b3d2Safresh1is_deeply( 120*5759b3d2Safresh1 $facet_data->{plan}, 121*5759b3d2Safresh1 {count => 0, none => 1}, 122*5759b3d2Safresh1 "No plan" 123*5759b3d2Safresh1); 124*5759b3d2Safresh1 125*5759b3d2Safresh1$plan = Test2::Event::Plan->new( 126*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 127*5759b3d2Safresh1 max => 0, 128*5759b3d2Safresh1 directive => 'SKIP', 129*5759b3d2Safresh1); 130*5759b3d2Safresh1 131*5759b3d2Safresh1$facet_data = $plan->facet_data; 132*5759b3d2Safresh1ok($facet_data->{about}, "Got common facet data"); 133*5759b3d2Safresh1is($facet_data->{control}->{terminate}, 0, "terminate with 0"); 134*5759b3d2Safresh1is_deeply( 135*5759b3d2Safresh1 $facet_data->{plan}, 136*5759b3d2Safresh1 {count => 0, skip => 1}, 137*5759b3d2Safresh1 "Skip, no reason" 138*5759b3d2Safresh1); 139*5759b3d2Safresh1 140*5759b3d2Safresh1$plan = Test2::Event::Plan->new( 141*5759b3d2Safresh1 trace => Test2::EventFacet::Trace->new(frame => [__PACKAGE__, __FILE__, __LINE__]), 142*5759b3d2Safresh1 max => 0, 143*5759b3d2Safresh1 directive => 'SKIP', 144*5759b3d2Safresh1 reason => 'because', 145*5759b3d2Safresh1); 146*5759b3d2Safresh1 147*5759b3d2Safresh1$facet_data = $plan->facet_data; 148*5759b3d2Safresh1ok($facet_data->{about}, "Got common facet data"); 149*5759b3d2Safresh1is($facet_data->{control}->{terminate}, 0, "terminate with 0"); 150*5759b3d2Safresh1is_deeply( 151*5759b3d2Safresh1 $facet_data->{plan}, 152*5759b3d2Safresh1 {count => 0, skip => 1, details => 'because'}, 153*5759b3d2Safresh1 "Skip, no reason" 154*5759b3d2Safresh1); 155*5759b3d2Safresh1 156*5759b3d2Safresh1done_testing; 157