NAME
Test::Stream::Workflow::Unit - Representation of a workflow unit.
EXPERIMENTAL CODE WARNING
This is an experimental release! Test-Stream, and all its components are still in an experimental phase. This dist has been released to cpan in order to allow testers and early adopters the chance to write experimental new tools with it, or to add experimental support for it into old tools.
PLEASE DO NOT COMPLETELY CONVERT OLD TOOLS YET. This experimental release is very likely to see a lot of code churn. API's may break at any time. Test-Stream should NOT be depended on by any toolchain level tools until the experimental phase is over.
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
AUTHORS
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://www.perl.com/perl/misc/Artistic.html