1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-19 04:11:44 +02:00

Connection: added config option onConnect (#303)

onConnect option is an array of SQL queries run by Connection::query() right after a database connection is established.
This commit is contained in:
Miloslav Hůla
2018-09-17 12:55:47 +02:00
committed by David Grudl
parent 168971292d
commit eaf2494d90
2 changed files with 34 additions and 0 deletions

View File

@@ -50,3 +50,27 @@ test(function () use ($config) {
$conn->disconnect();
Assert::false($conn->isConnected());
});
test(function () use ($config) {
Assert::exception(function () use ($config) {
new Connection($config + ['onConnect' => '']);
}, InvalidArgumentException::class, "Configuration option 'onConnect' must be array.");
$e = Assert::exception(function () use ($config) {
new Connection($config + ['onConnect' => ['STOP']]);
}, Dibi\DriverException::class);
Assert::same('STOP', $e->getSql());
$e = Assert::exception(function () use ($config) {
new Connection($config + ['onConnect' => [['STOP %i', 123]]]);
}, Dibi\DriverException::class);
Assert::same('STOP 123', $e->getSql());
// lazy
$conn = new Connection($config + ['lazy' => true, 'onConnect' => ['STOP']]);
$e = Assert::exception(function () use ($conn) {
$conn->query('SELECT 1');
}, Dibi\DriverException::class);
Assert::same('STOP', $e->getSql());
});