App-Environ
view release on metacpan or search on metacpan
t/01-event-processing.t view on Meta::CPAN
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 } );
is( $t_done, 1, 'asynchronous event' );
return;
}
sub t_unknown_event {
lives_ok {
App::Environ->send_event('unknown');
}
'unknown event';
return;
}
sub t_handling_error {
eval { App::Environ->send_event( 'reload', 1 ) };
my $t_err_sync = $@;
is( $t_err_sync, "Some error.\n", 'handling error; synchronous' );
my $t_err_async;
App::Environ->send_event( 'pre_finalize:r', 1,
sub { $t_err_async = shift } );
is( $t_err_async, "Some error.", 'handling error; asynchronous' );
return;
}
sub t_finalize {
App::Environ->send_event('finalize:r');
like(
exception {
my $t_foo_inst = Foo->instance;
},
qr/Foo must be initialized first/,
'finalization; Foo'
);
like(
exception {
my $t_bar_inst = Bar->instance;
},
qr/Bar must be initialized first/,
'finalization; Bar'
);
return;
}
( run in 0.499 second using v1.01-cache-2.11-cpan-d8267643d1d )