Test2::Util::Facets2Legacy(3p) Perl Programmers Reference Guide #
Test2::Util::Facets2Legacy(3p) Perl Programmers Reference Guide
NNAAMMEE #
Test2::Util::Facets2Legacy - Convert facet data to the legacy event API.
DDEESSCCRRIIPPTTIIOONN #
This module exports several subroutines from the older event API (see
Test2::Event). These subroutines can be used as methods on any object
that provides a custom "facet_data()" method. These subroutines can also
be used as functions that take a facet data hashref as arguments.
SSYYNNOOPPSSIISS #
AASS MMEETTHHOODDSS #
package My::Event;
use Test2::Util::Facets2Legacy ':ALL';
sub facet_data { return { ... } }
Then to use it:
my $e = My::Event->new(...);
my $causes_fail = $e->causes_fail;
my $summary = $e->summary;
....
AASS FFUUNNCCTTIIOONNSS #
use Test2::Util::Facets2Legacy ':ALL';
my $f = {
assert => { ... },
info => [{...}, ...],
control => {...},
...
};
my $causes_fail = causes_fail($f);
my $summary = summary($f);
NNOOTTEE OONN CCYYCCLLEESS #
When used as methods, all these subroutines call "$e->facet_data()". The
default "facet_data()" method in Test2::Event relies on the legacy
methods this module emulates in order to work. As a result of this it is
very easy to create infinite recursion bugs.
These methods have cycle detection and will throw an exception early if a
cycle is detected. "uuid()" is currently the only subroutine in this
library that has a fallback behavior when cycles are detected.
EEXXPPOORRTTSS #
Nothing is exported by default. You must specify which methods to import,
or use the ':ALL' tag.
$bool = $e->ccaauusseess__ffaaiill(())
$bool = causes_fail($f)
Check if the event or facets result in a failing state.
$bool = $e->ddiiaaggnnoossttiiccss(())
$bool = diagnostics($f)
Check if the event or facets contain any diagnostics information.
$bool = $e->gglloobbaall(())
$bool = global($f)
Check if the event or facets need to be globally processed.
$bool = $e->iinnccrreemmeennttss__ccoouunntt(())
$bool = increments_count($f)
Check if the event or facets make an assertion.
$bool = $e->nnoo__ddiissppllaayy(())
$bool = no_display($f)
Check if the event or facets should be rendered or hidden.
($max, $directive, $reason) = $e->sseettss__ppllaann(())
($max, $directive, $reason) = sets_plan($f)
Check if the event or facets set a plan, and return the plan details.
$id = $e->ssuubbtteesstt__iidd(())
$id = subtest_id($f)
Get the subtest id, if any.
$string = $e->ssuummmmaarryy(())
$string = summary($f)
Get the summary of the event or facets hash, if any.
$undef_or_int = $e->tteerrmmiinnaattee(())
$undef_or_int = terminate($f)
Check if the event or facets should result in process termination, if
so the exit code is returned (which could be 0). undef is returned if
no termination is requested.
$uuid = $e->uuuuiidd(())
$uuid = uuid($f)
Get the UUID of the facets or event.
NNoottee:: This will fall back to "$e->SUPER::uuid()" if a cycle is
detected and an event is used as the argument.
SSOOUURRCCEE #
The source code repository for Test2 can be found at
_h_t_t_p_:_/_/_g_i_t_h_u_b_._c_o_m_/_T_e_s_t_-_M_o_r_e_/_t_e_s_t_-_m_o_r_e_/.
MMAAIINNTTAAIINNEERRSS #
Chad Granum <exodist@cpan.org>
AAUUTTHHOORRSS #
Chad Granum <exodist@cpan.org>
CCOOPPYYRRIIGGHHTT #
Copyright 2020 Chad Granum <exodist@cpan.org>.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See _h_t_t_p_:_/_/_d_e_v_._p_e_r_l_._o_r_g_/_l_i_c_e_n_s_e_s_/
perl v5.36.3 2023-02-15 Test2::Util::Facets2Legacy(3p)