<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package Test2::Tools::Event;
use strict;
use warnings;

our $VERSION = '0.000162';

use Test2::Util qw/pkg_to_file/;

our @EXPORT = qw/gen_event/;
use base 'Exporter';

sub gen_event {
    my ($type, %fields) = @_;

    $type = "Test2::Event::$type" unless $type =~ s/^\+//;

    require(pkg_to_file($type));

    $fields{trace} ||= Test2::Util::Trace-&gt;new(frame =&gt; [caller(0)]);

    return $type-&gt;new(%fields);
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Test2::Tools::Event - Tools for generating test events.

=head1 DESCRIPTION

This module provides tools for generating events quickly by bypassing the
context/hub. This is particularly useful when testing other L&lt;Test2&gt; packages.

=head1 EXPORTS

=over 4

=item $e = gen_event($TYPE)

=item $e = gen_event($TYPE, %FIELDS)

=item $e = gen_event 'Ok';

=item $e = gen_event Ok =&gt; ( ... )

=item $e = gen_event '+Test2::Event::Ok' =&gt; ( ... )

This will produce an event of the specified type. C&lt;$TYPE&gt; is assumed to be
shorthand for C&lt;Test2::Event::$TYPE&gt;, you can prefix C&lt;$TYPE&gt; with a '+' to
drop the assumption.

An L&lt;Test2::Util::Trace&gt; will be generated using C&lt;caller(0)&gt; and will be put in
the 'trace' field of your new event, unless you specified your own 'trace'
field.

=back

=head1 SOURCE

The source code repository for Test2-Suite can be found at
F&lt;https://github.com/Test-More/Test2-Suite/&gt;.

=head1 MAINTAINERS

=over 4

=item Chad Granum E&lt;lt&gt;exodist@cpan.orgE&lt;gt&gt;

=back

=head1 AUTHORS

=over 4

=item Chad Granum E&lt;lt&gt;exodist@cpan.orgE&lt;gt&gt;

=back

=head1 COPYRIGHT

Copyright 2018 Chad Granum E&lt;lt&gt;exodist@cpan.orgE&lt;gt&gt;.

This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

See F&lt;http://dev.perl.org/licenses/&gt;

=cut
</pre></body></html>