xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Test2/modules/Event/Plan.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
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