use strict;
use warnings;
use Test::Requires 'DBD::SQLite';
use Test::More;
use t::Util;
use DBIx::QueryLog;
use File::Temp qw(tempfile);
use IO::Handle;
sub test_params {
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($desc, $code) = @_;
my %params;
local $DBIx::QueryLog::OUTPUT = sub { %params = @_ };
$code->();
subtest $desc => sub {
my $expects = sprintf
"[%s] [%s] [%s] [%s] %s at %s line %s\n",
@params{qw/localtime pkg time data_source sql file line/};
note $params{message};
is $params{message}, $expects;
};
}
my $dbh = t::Util->new_dbh;
DBIx::QueryLog->show_data_source(1);
TEST:
test_params simple => sub {
$dbh->do('SELECT * FROM sqlite_master');
};
DBIx::QueryLog->show_data_source(0);
unless ($ENV{DBIX_QUERYLOG_SHOW_DATASOURCE}) {
$ENV{DBIX_QUERYLOG_SHOW_DATASOURCE} = 1;
goto TEST;
}
done_testing;