DBIx-Class-QueryLog-Tee
view release on metacpan or search on metacpan
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Test::Deep;
use aliased 'DBIx::Class::QueryLog::Tee';
subtest instantiation => sub {
ok(Tee->new, 'vanilla');
ok(Tee->new(loggers => {}), 'empty loggers');
ok(
Tee->new(loggers => { a => ValidLogger->new }),
'valid logger'
);
ok(
exception { Tee->new(loggers => { a => InValidLogger->new }) },
'invalid logger',
);
};
subtest mutation => sub {
my $empty = Tee->new;
ok(!exception { $empty->add_logger(a => ValidLogger->new) }, 'valid add_logger');
ok(!exception { $empty->replace_logger(a => ValidLogger->new) }, 'valid replace_logger');
ok(!exception { $empty->replace_logger(b => ValidLogger->new) }, 'invalid replace_logger');
ok(!exception { $empty->remove_logger('a') }, 'valid remove_logger');
ok(exception { $empty->add_logger(a => InValidLogger->new) }, 'invalid add_logger');
ok(exception { $empty->remove_logger('a') }, 'invalid remove_logger');
ok(exception { $empty->replace_logger(a => InValidLogger->new) }, 'invalid replace_logger');
};
subtest log => sub {
my ($a, $b, $c) = map ValidLogger->new, 1..3;
my $tee = Tee->new(
loggers => {
a => $a,
b => $b,
c => $c,
},
);
$tee->query_start('foo');
$tee->query_end('foo');
cmp_deeply([ $a->_data, $b->_data, $c->_data ],
[
[ ['query_start', 1, 'foo'], ['query_end', 4, 'foo']],
[ ['query_start', 2, 'foo'], ['query_end', 5, 'foo']],
[ ['query_start', 3, 'foo'], ['query_end', 6, 'foo']],
],
'things get run in the right order',
);
};
done_testing;
BEGIN {
package ValidLogger;
use Sub::Name 'subname';
use Moo;
( run in 1.121 second using v1.01-cache-2.11-cpan-54e63673c56 )