# man > Test2::Event::V2

## NAME
    [Test2::Event::V2](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent%3A%3AV2/markdown) - Second generation event.

## DESCRIPTION
    This is the event type that should be used instead of [Test2::Event](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown) or its legacy subclasses.

## SYNOPSIS
  USING A CONTEXT
        use [Test2::API](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AAPI/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent%3A%3AV2/markdown);

        my $e = [Test2::Event::V2](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent%3A%3AV2/markdown)->new(
            trace => {frame => [$PKG, $FILE, $LINE, $SUBNAME]},
            info  => [{tag => 'NOTE', details => "This is a note"}],
        );

## METHODS
    This class inherits from [Test2::Event](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown).

    $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](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown). 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](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown). 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](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown), overridden to also vivify/mutate the 'about' facet.

    $e->set_trace($trace)
        Inherited from [Test2::Event](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AUtil%3A%3AFacets2Legacy/markdown), see that module or [Test2::Event](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AEvent/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Test2%3A%3AUtil%3A%3AExternalMeta/markdown) 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/>

