Test::Stream::Workflow::Unit(3)

NAME
Test::Stream::Workflow::Unit - Representation of a workflow unit.

EXPERIMENTAL CODE WARNING
"This module is still EXPERIMENTAL". Test-Stream is now stable, but this particular module is still experimental. You are still free to use this module, but you have been warned that it may change in backwords incompatible ways. This message will be removed from this modules POD once it is considered stable.

DEPRECATED
This distribution is deprecated in favor of Test2, Test2::Suite, and Test2::Workflow.

See Test::Stream::Manual::ToTest2 for a conversion guide.

DESCRIPTION
This package is a single unit of work to be done in a workflow. The unit may contain a codeblock, or many child units.

METHODS

$bool = $unit->contains($name)
$bool = $unit->contains($line)
$bool = $unit->contains("$file $line)
    Check if the unit contains (or is) a unit with the given specification. The specification may be a line number, a filename + line number, or a unit name. This will return true if either the unit, or one of the child units, matches.

$unit->add_modify($other_unit)
$unit->add_buildup($other_unit)
$unit->add_teardown($other_unit)
    These add $other_unit as a child unit. The child is added to the group specified in the method name.

$unit->add_primary($other_unit)
    Add a primary unit child. Note: The primary unit is either an arrayref of other units, or a single coderef. In cases where the primary is a coderef, this will fail badly.

$unit->add_post(sub { ... })
    Add a post-build callback.

$unit->do_post()
    Run (and remove) the post-build callbacks.

$dbg = $unit->debug
    Generate an Test::Stream::Debug object for this unit.

$ctx = $unit->context
    Generate a context representing the scope of the unit. Note: this context is non-canonical.

$name = $unit->name
    Get the unit name.

$hr = $unit->meta
    Get the meta hashref, this contains things like 'todo' and 'skip'.

$type = $unit->type
    Get the unit type.

$bool = $unit->wrap
    True if the codeblock for this unit is a wrap (around_all, around_each, etc).

$hr = $unit->stash
    General purpose stash for use in plugins and extensions.

$pkg = $unit->package
    Package for the unit.

$file = $unit->file
    Filename for the unit

$start = $unit->start_line
    Starting line for the unit.

$end = $unit->end_line
    Ending line number for the unit. Note: This can be set to an integer, or to the string 'EOF'.

$unit->adjust_lines
    This will check all child unit bounds, if they fall outside the parents bounds then the parent will be adjusted.

$ar = $unit->post
$ar = $unit->modify
$ar = $unit->buildup
$ar = $unit->teardown
    Access to the arrayrefs for the specific child types.

$code_or_ar = $unit->primary
    Get the primary, which may be an arrayref of other units, or a single coderef.

SOURCE
The source code repository for Test::Stream can be found at http://github.com/Test-More/Test-Stream/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT
Copyright 2015 Chad Granum <exodist7@gmail.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/