X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F92storage.t;h=127b66c0485508b4bbad3d032497accf50b96c5a;hb=9c1f7965d4bb248b20c6501eea21284fcc541749;hp=5c69f303b88bdb05383aaa987c286bd0ef80895e;hpb=baa31d2f7fd5d2d8931ef5206ec53f5f58212898;p=dbsrgits%2FDBIx-Class.git diff --git a/t/92storage.t b/t/92storage.t index 5c69f30..127b66c04 100644 --- a/t/92storage.t +++ b/t/92storage.t @@ -32,22 +32,31 @@ use DBICTest; } } -plan tests => 3; +plan tests => 6; my $schema = DBICTest->init_schema(); 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; +eval { + $schema->storage->throw_exception('test_exception_42'); +}; +like($@, qr/\btest_exception_42\b/, 'basic exception'); + +eval { + $schema->resultset('CD')->search_literal('broken +%$#$1')->all; +}; +like($@, qr/prepare_cached failed/, 'exception via DBI->HandleError, etc'); + bless $storage, "DBICTest::ExplodingStorage"; $schema->storage($storage); eval { - $schema->resultset('Artist')->create({ name => "Exploding Sheep" }) + $schema->resultset('Artist')->create({ name => "Exploding Sheep" }); }; is($@, "", "Exploding \$sth->execute was caught"); @@ -55,5 +64,10 @@ is($@, "", "Exploding \$sth->execute was caught"); is(1, $schema->resultset('Artist')->search({name => "Exploding Sheep" })->count, "And the STH was retired"); +my $info = { on_connect_do => [] }; + +$storage->connect_info(['foo','bar','baz',$info]); + +ok(exists($info->{on_connect_do}), q{Didn't kill key passed to storage}); 1;