1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
use strict;
use warnings;
# test relies on the original default
BEGIN { delete @ENV{qw( DBICTEST_SWAPOUT_SQLAC_WITH )} }
use Test::More;
use lib qw(t/lib);
use DBICTest ':DiffSQL';
my $base_schema = DBICTest->init_schema(
no_deploy => 1,
);
my $schema = $base_schema->connect(
sub {
$base_schema->storage->dbh
},
{
on_connect_call => [ [ rebase_sqlmaker => 'DBICTest::SQLMRebase' ] ],
},
);
ok (! $base_schema->storage->connected, 'No connection on base schema yet');
ok (! $schema->storage->connected, 'No connection on experimental schema yet');
$schema->storage->ensure_connected;
is(
$schema->storage->sql_maker->__select_counter,
undef,
"No statements registered yet",
);
is_deeply(
mro::get_linear_isa( ref( $schema->storage->sql_maker ) ),
[
qw(
DBIx::Class::SQLMaker::SQLite__REBASED_ON__DBICTest::SQLMRebase
DBIx::Class::SQLMaker::SQLite
DBIx::Class::SQLMaker
DBICTest::SQLMRebase
DBIx::Class::SQLMaker::ClassicExtensions
),
@{ mro::get_linear_isa( 'DBIx::Class' ) },
@{ mro::get_linear_isa( 'SQL::Abstract::Classic' ) },
],
'Expected SQLM object inheritance after rebase',
);
$schema->resultset('Artist')->count_rs->as_query;
is(
$schema->storage->sql_maker->__select_counter,
1,
"1 SELECT fired off, tickling override",
);
$base_schema->resultset('Artist')->count_rs->as_query;
is(
ref( $base_schema->storage->sql_maker ),
'DBIx::Class::SQLMaker::SQLite',
'Expected core SQLM object on original schema remains',
);
is(
$schema->storage->sql_maker->__select_counter,
1,
"No further SELECTs seen by experimental override",
);
done_testing;
|