X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Fbase.t;h=451f7e6257a7e993daa9d4b69f6327793d5c29a1;hb=07d0bbab9f05e82bfe202d37670de893b2ff4f4b;hp=b647ade827f33b3591f650b7553b2915d3b676b7;hpb=d87929a4221da691151ac8849a658a5d363d88f7;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/base.t b/t/storage/base.t index b647ade..451f7e6 100644 --- a/t/storage/base.t +++ b/t/storage/base.t @@ -10,11 +10,13 @@ use Data::Dumper; my $schema = DBICTest->init_schema( sqlite_use_file => 1 ); -is( ref($schema->storage), 'DBIx::Class::Storage::DBI::SQLite', - 'Storage reblessed correctly into DBIx::Class::Storage::DBI::SQLite' ); - my $storage = $schema->storage; -$storage->ensure_connected; + +is( + ref($storage), + 'DBIx::Class::Storage::DBI::SQLite', + 'Storage reblessed correctly into DBIx::Class::Storage::DBI::SQLite' +) unless $ENV{DBICTEST_VIA_REPLICATED}; throws_ok { $schema->storage->throw_exception('test_exception_42'); @@ -146,31 +148,44 @@ for my $type (keys %$invocations) { ); } +$schema->storage->_dbh->disconnect; + # make sure connection-less storages do not throw on _determine_driver -{ - my $s = DBICTest::Schema->connect; +# but work with ENV at the same time +SKIP: for my $env_dsn (undef, (DBICTest->_database)[0] ) { + skip 'Subtest relies on being connected to SQLite', 1 + if $env_dsn and $env_dsn !~ /\:SQLite\:/; + + local $ENV{DBI_DSN} = $env_dsn || ''; + + my $s = DBICTest::Schema->connect(); is_deeply ( $s->storage->connect_info, [], - 'Starting with no connection info', + 'Starting with no explicitly passed in connect info' + . ($env_dsn ? ' (with DBI_DSN)' : ''), ); - isa_ok( - $s->storage->sql_maker, - 'DBIx::Class::SQLMaker', - 'Getting back an SQLMaker succesfully', - ); + my $sm = $s->storage->sql_maker; + + ok (! $s->storage->connected, 'Storage does not appear connected after SQLMaker instance is taken'); - ok (! $s->storage->_driver_determined, 'Driver undetermined'); + if ($env_dsn) { + isa_ok($sm, 'DBIx::Class::SQLMaker'); - ok (! $s->storage->connected, 'Storage does not appear connected'); + ok ( $s->storage->_driver_determined, 'Driver determined (with DBI_DSN)'); + isa_ok ( $s->storage, 'DBIx::Class::Storage::DBI::SQLite' ); + } + else { + isa_ok($sm, 'DBIx::Class::SQLMaker'); - throws_ok { - $s->storage->ensure_connected - } qr/You did not provide any connection_info/, - 'sensible exception on empty conninfo connect' + ok (! $s->storage->_driver_determined, 'Driver undetermined'); + + throws_ok { + $s->storage->ensure_connected + } qr/You did not provide any connection_info/, + 'sensible exception on empty conninfo connect'; + } } done_testing; - -1;