# Test2::Event::V2 - phpMan

## NAME
    [Test2::Event::V2] - Second generation event.

## DESCRIPTION
    This is the event type that should be used instead of [Test2::Event] or
    its legacy subclasses.

## SYNOPSIS
  USING A CONTEXT
        use [Test2::API] qw/context/;

        sub my_tool {
            my $ctx = context();

            my $event = $ctx->send_ev2(info => [{tag => 'NOTE', details => "This is a note"}]);

            $ctx->release;

            return $event;
        }

  USING THE CONSTRUCTOR
        use [Test2::Event::V2];

        my $e = [Test2::Event::V2]->new(
            trace => {frame => [$PKG, $FILE, $LINE, $SUBNAME]},
            info  => [{tag => 'NOTE', details => "This is a note"}],
        );

## METHODS
    This class inherits from [Test2::Event].

    $fd = $e->facet_data()
        This will return a hashref of facet data. Each facet hash will be a
        shallow copy of the original.

    $about = $e->about()
        This will return the 'about' facet hashref.

        NOTE: This will return the internal hashref, not a copy.

    $trace = $e->trace()
        This will return the 'trace' facet, normally blessed (but this is
        not enforced when the trace is set using "set_trace()".

        NOTE: This will return the internal trace, not a copy.

  MUTATION
    $e->add_amnesty({...})
        Inherited from [Test2::Event]. This can be used to add 'amnesty'
        facets to an existing event. Each new item is added to the END of
        the list.

        NOTE: Items ARE blessed when added.

    $e->add_hub({...})
        Inherited from [Test2::Event]. This is used by hubs to stamp events as
        they pass through. New items are added to the START of the list.

        NOTE: Items ARE NOT blessed when added.

    $e->set_uuid($UUID)
        Inherited from [Test2::Event], overridden to also vivify/mutate the
        'about' facet.

    $e->set_trace($trace)
        Inherited from [Test2::Event] which allows you to change the trace.

        Note: This method does not bless/clone the trace for you. Many
        things will expect the trace to be blessed, so you should probably
        do that.

  LEGACY SUPPORT METHODS
    These are all imported from [Test2::Util::Facets2Legacy], see that module
    or [Test2::Event] for documentation on what they do.

    causes_fail
    diagnostics
    global
    increments_count
    no_display
    sets_plan
    subtest_id
    summary
    terminate

## THIRD PARTY META-DATA
    This object consumes [Test2::Util::ExternalMeta] which provides a
    consistent way for you to attach meta-data to instances of this class.
    This is useful for tools, plugins, and other extensions.

## SOURCE
    The source code repository for Test2 can be found at
    <http://github.com/Test-More/test-more/>.

## MAINTAINERS
    Chad Granum <<exodist@cpan.org>>

## AUTHORS
    Chad Granum <<exodist@cpan.org>>

## COPYRIGHT
    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 <http://dev.perl.org/licenses/>

