Test2::Util::Facets2Legacy(3p) Perl Programmers Reference Guide

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)