App-Environ
view release on metacpan or search on metacpan
t/01-event-processing.t view on Meta::CPAN
use 5.008000;
use strict;
use warnings;
use lib 't/lib';
use Test::More tests => 10;
use Test::Fatal qw( lives_ok exception );
use App::Environ;
BEGIN {
$ENV{APPCONF_DIRS} = 't/etc';
}
use Foo;
use Bar;
t_initialize();
t_reload();
t_async_call();
t_unknown_event();
t_handling_error();
t_finalize();
sub t_initialize {
App::Environ->send_event( 'initialize', 'moo', 'jar' );
my $t_foo_inst = Foo->instance;
my $t_bar_inst = Bar->instance;
is_deeply( $t_foo_inst,
{ config => {
param1 => 'foo:value1',
param2 => 'foo:value2',
},
init_args => [ qw( moo jar ) ],
reloads => 0,
}, 'initialization; Foo' );
is_deeply( $t_bar_inst,
{ config => {
param1 => 'bar:value1',
param2 => 'bar:value2',
},
init_args => [ qw( moo jar ) ],
reloads => 0,
}, 'initialization; Bar' );
return;
}
sub t_reload {
App::Environ->send_event('reload');
my $t_foo_inst = Foo->instance;
my $t_bar_inst = Bar->instance;
is( $t_foo_inst->{reloads}, 1, 'reload; Foo' );
is( $t_bar_inst->{reloads}, 1, 'reload; Bar' );
return;
}
sub t_async_call {
my $t_done;
App::Environ->send_event( 'pre_finalize:r', undef, sub { $t_done = 1 } );
( run in 0.777 second using v1.01-cache-2.11-cpan-54e63673c56 )