X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Fbase.t;h=451f7e6257a7e993daa9d4b69f6327793d5c29a1;hb=0bec44d5d7af72fd110ab6bff067f865f34db5d0;hp=ab7e89ccf3fbffedfc23e36b152de2e3e90f51f0;hpb=444f799b93630ab056ac1bd110661f8fc3d7c033;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/base.t b/t/storage/base.t index ab7e89c..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,34 +148,44 @@ for my $type (keys %$invocations) { ); } +$schema->storage->_dbh->disconnect; + # make sure connection-less storages do not throw on _determine_driver -{ - local $ENV{DBI_DSN}; - local $ENV{DBI_DRIVER}; +# 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; + 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;