diff --git a/tests/databases.sample.ini b/tests/databases.sample.ini index 7d38dd01..990b7c38 100644 --- a/tests/databases.sample.ini +++ b/tests/databases.sample.ini @@ -1,3 +1,13 @@ +[sqlite3] ; default +driver = sqlite3 +database = :memory: +system = sqlite + +[sqlite-pdo] +driver = pdo +dsn = "sqlite::memory:" +system = sqlite + [mysql] driver = mysql host = 127.0.0.1 @@ -14,10 +24,12 @@ password = charset = utf8 system = mysql -[sqlite3] ; default -driver = sqlite3 -database = :memory: -system = sqlite +[mysql-pdo] +driver = pdo +dsn = "mysql:host=127.0.0.1" +username = root +password = +system = mysql [postgre] driver = postgre @@ -26,9 +38,23 @@ username = postgres password = system = postgre +[postgre-pdo] +driver = pdo +dsn = "pgsql:host=127.0.0.1;dbname=dibi_test" +username = postgres +password = +system = postgre + [odbc] driver = odbc -dsn = "Driver={Microsoft Access Driver (*.mdb)}Dbq=data/odbc_tmp.mdb" +dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=data/odbc.mdb" +system = odbc + +[odbc-pdo] +driver = pdo +dsn = "odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=data/odbc.mdb" +username = +password = system = odbc [sqlsrv] @@ -36,7 +62,14 @@ driver = sqlsrv host = (local) username = dibi password = -system = mssql +system = sqlsrv + +[sqlsrv-pdo] +driver = pdo +dsn = "sqlsrv:Server=127.0.0.1" +username = dibi +password = +system = sqlsrv [oracle] driver = oracle @@ -44,21 +77,16 @@ username = dibi password = system = oracle -[sqlite-pdo] +[oracle-pdo] driver = pdo -dsn = "sqlite::memory:" -system = sqlite - -[mysql-pdo] -driver = pdo -dsn = "mysql:host=127.0.0.1" -username = root +dsn = "oci:dbname=dibi" +username = dibi password = -system = mysql +system = oracle -[postgre-pdo] -driver = pdo -dsn = "pgsql:host=127.0.0.1;dbname=dibi_test" -username = postgres +[firebird] +driver = firebird +database = database.fdb +username = dibi password = -system = postgre +system = firebird diff --git a/tests/dibi/bootstrap.php b/tests/dibi/bootstrap.php index a040e613..12f8d1b7 100644 --- a/tests/dibi/bootstrap.php +++ b/tests/dibi/bootstrap.php @@ -19,7 +19,7 @@ try { $config = Tester\Environment::loadData(); } catch (Exception $e) { $config = parse_ini_file(__DIR__ . '/../databases.ini', TRUE); - $config = $config['sqlite3']; + $config = reset($config); } @@ -63,7 +63,7 @@ function reformat($s) return strtr($s, '[]', '``'); } elseif ($config['system'] === 'postgre') { return strtr($s, '[]', '""'); - } elseif ($config['system'] === 'odbc' || $config['system'] === 'sqlite') { + } elseif (in_array($config['system'], ['odbc', 'sqlite', 'sqlsrv'])) { return $s; } else { trigger_error("Unsupported driver $config[system]", E_USER_WARNING); diff --git a/tests/dibi/data/sqlsrv.sql b/tests/dibi/data/sqlsrv.sql new file mode 100644 index 00000000..983ca4bf --- /dev/null +++ b/tests/dibi/data/sqlsrv.sql @@ -0,0 +1,46 @@ +IF OBJECT_ID('orders', 'U') IS NOT NULL DROP TABLE orders; +IF OBJECT_ID('products', 'U') IS NOT NULL DROP TABLE products; +IF OBJECT_ID('customers', 'U') IS NOT NULL DROP TABLE customers; + + +CREATE TABLE products ( + product_id int NOT NULL IDENTITY(11,1), + title varchar(50) NOT NULL, + PRIMARY KEY(product_id) +); + +SET IDENTITY_INSERT products ON; +INSERT INTO products (product_id, title) VALUES (1, 'Chair'); +INSERT INTO products (product_id, title) VALUES (2, 'Table'); +INSERT INTO products (product_id, title) VALUES (3, 'Computer'); +SET IDENTITY_INSERT products OFF; + +CREATE TABLE customers ( + customer_id int NOT NULL IDENTITY(11,1), + name varchar(50) NOT NULL, + PRIMARY KEY(customer_id) +); + +SET IDENTITY_INSERT customers ON; +INSERT INTO customers (customer_id, name) VALUES (1, 'Dave Lister'); +INSERT INTO customers (customer_id, name) VALUES (2, 'Arnold Rimmer'); +INSERT INTO customers (customer_id, name) VALUES (3, 'The Cat'); +INSERT INTO customers (customer_id, name) VALUES (4, 'Holly'); +INSERT INTO customers (customer_id, name) VALUES (5, 'Kryten'); +INSERT INTO customers (customer_id, name) VALUES (6, 'Kristine Kochanski'); +SET IDENTITY_INSERT customers OFF; + +CREATE TABLE orders ( + order_id int NOT NULL IDENTITY(11,1), + customer_id int NOT NULL, + product_id int NOT NULL, + amount float NOT NULL, + PRIMARY KEY(order_id) +); + +SET IDENTITY_INSERT orders ON; +INSERT INTO orders (order_id, customer_id, product_id, amount) VALUES (1, 2, 1, 7); +INSERT INTO orders (order_id, customer_id, product_id, amount) VALUES (2, 2, 3, 2); +INSERT INTO orders (order_id, customer_id, product_id, amount) VALUES (3, 1, 2, 3); +INSERT INTO orders (order_id, customer_id, product_id, amount) VALUES (4, 6, 3, 5); +SET IDENTITY_INSERT orders OFF;