.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "Test2::Todo 3"
.TH Test2::Todo 3 "2019-05-18" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Test2::Todo \- TODO extension for Test2.
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This is an object that lets you create and manage \s-1TODO\s0 states for tests. This
is an extension, not a plugin or a tool. This library can be used by plugins
and tools to manage todo states.
.PP
If you simply want to write a todo test then you should look at the \f(CW\*(C`todo\*(C'\fR
function provided by Test2::Tools::Basic.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& use Test2::Todo;
\&
\& # Start the todo
\& my $todo = Test2::Todo\->new(reason => \*(AqFix later\*(Aq);
\&
\& # Will be considered todo, so suite still passes
\& ok(0, "oops");
\&
\& # End the todo
\& $todo\->end;
\&
\& # TODO has ended, this test will actually fail.
\& ok(0, "oops");
.Ve
.SH "CONSTRUCTION OPTIONS"
.IX Header "CONSTRUCTION OPTIONS"
.IP "reason (required)" 4
.IX Item "reason (required)"
The reason for the todo, this can be any defined value.
.IP "hub (optional)" 4
.IX Item "hub (optional)"
The hub to which the \s-1TODO\s0 state should be applied. If none is provided then the
current global hub is used.
.SH "INSTANCE METHODS"
.IX Header "INSTANCE METHODS"
.ie n .IP "$todo\->end" 4
.el .IP "\f(CW$todo\fR\->end" 4
.IX Item "$todo->end"
End the todo state.
.SH "CLASS METHODS"
.IX Header "CLASS METHODS"
.ie n .IP "$count = Test2::Todo\->hub_in_todo($hub)" 4
.el .IP "\f(CW$count\fR = Test2::Todo\->hub_in_todo($hub)" 4
.IX Item "$count = Test2::Todo->hub_in_todo($hub)"
If the hub has any todo objects this will return the total number of them. If
the hub has no todo objects it will return 0.
.SH "OTHER NOTES"
.IX Header "OTHER NOTES"
.SS "How it works"
.IX Subsection "How it works"
When an instance is created a filter sub is added to the Test2::Hub. This
filter will set the \f(CW\*(C`todo\*(C'\fR and \f(CW\*(C`diag_todo\*(C'\fR attributes on all events as they
come in. When the instance is destroyed, or \f(CW\*(C`end()\*(C'\fR is called, the filter is
removed.
.PP
When a new hub is pushed (such as when a subtest is started) the new hub will
inherit the filter, but it will only set \f(CW\*(C`diag_todo\*(C'\fR, it will not set \f(CW\*(C`todo\*(C'\fR
on events in child hubs.
.ie n .SS "$todo\->end is called at destruction"
.el .SS "\f(CW$todo\fP\->end is called at destruction"
.IX Subsection "$todo->end is called at destruction"
If your \f(CW$todo\fR object falls out of scope and gets garbage collected, the todo
will end.
.SS "Can I use multiple instances?"
.IX Subsection "Can I use multiple instances?"
Yes. The most recently created one that is still active will win.
.SH "SOURCE"
.IX Header "SOURCE"
The source code repository for Test2\-Suite can be found at
\&\fIhttps://github.com/Test\-More/Test2\-Suite/\fR.
.SH "MAINTAINERS"
.IX Header "MAINTAINERS"
.IP "Chad Granum <exodist@cpan.org>" 4
.IX Item "Chad Granum <exodist@cpan.org>"
.SH "AUTHORS"
.IX Header "AUTHORS"
.PD 0
.IP "Chad Granum <exodist@cpan.org>" 4
.IX Item "Chad Granum <exodist@cpan.org>"
.PD
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2018 Chad Granum <exodist@cpan.org>.
.PP
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
.PP
See \fIhttp://dev.perl.org/licenses/\fR
Copyright 2K16 - 2K18 Indonesian Hacker Rulez