1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-03 12:47:33 +02:00

tests: fixes

This commit is contained in:
David Grudl
2015-11-04 14:23:14 +01:00
parent 5aab1ff023
commit 78d24a0e74
13 changed files with 72 additions and 88 deletions

View File

@@ -1,7 +1,7 @@
{ {
"name": "dibi/dibi", "name": "dibi/dibi",
"description": "Dibi is Database Abstraction Library for PHP", "description": "Dibi is Database Abstraction Library for PHP",
"keywords": ["database", "dbal", "mysql", "postgresql", "sqlite", "mssql", "oracle", "access", "pdo", "odbc"], "keywords": ["database", "dbal", "mysql", "postgresql", "sqlite", "mssql", "sqlsrv", "oracle", "access", "pdo", "odbc"],
"homepage": "http://dibiphp.com", "homepage": "http://dibiphp.com",
"license": ["BSD-3-Clause", "GPL-2.0", "GPL-3.0"], "license": ["BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
"authors": [ "authors": [

Binary file not shown.

View File

@@ -13,16 +13,6 @@ $conn = new Dibi\Connection($config);
$conn->loadFile(__DIR__ . "/data/$config[system].sql"); $conn->loadFile(__DIR__ . "/data/$config[system].sql");
function num($n)
{
global $config;
if (substr(@$config['dsn'], 0, 5) === 'odbc:' || $config['driver'] === 'sqlite') {
$n = is_float($n) ? "$n.0" : (string) $n;
}
return $n;
}
// fetch a single value // fetch a single value
$res = $conn->query('SELECT [title] FROM [products]'); $res = $conn->query('SELECT [title] FROM [products]');
Assert::same('Chair', $res->fetchSingle()); Assert::same('Chair', $res->fetchSingle());

View File

@@ -13,16 +13,6 @@ $conn = new Dibi\Connection($config);
$conn->loadFile(__DIR__ . "/data/$config[system].sql"); $conn->loadFile(__DIR__ . "/data/$config[system].sql");
function num($n)
{
global $config;
if (substr(@$config['dsn'], 0, 5) === 'odbc:' || $config['driver'] === 'sqlite') {
$n = is_float($n) ? "$n.0" : (string) $n;
}
return $n;
}
// fetch a single value // fetch a single value
$res = $conn->select('title')->from('products')->orderBy('product_id'); $res = $conn->select('title')->from('products')->orderBy('product_id');
Assert::equal('Chair', $res->fetchSingle()); Assert::equal('Chair', $res->fetchSingle());

View File

@@ -80,16 +80,6 @@ Assert::same(
); );
try {
$fluent = $conn->select('*')->from('table')->fetch();
} catch (Exception $e) {
}
Assert::same(
reformat(' SELECT * FROM [table] LIMIT 1'),
dibi::$sql
);
$fluent = $conn->select('*') $fluent = $conn->select('*')
->select( ->select(
$conn->select('count(*)') $conn->select('count(*)')
@@ -102,7 +92,10 @@ $fluent = $conn->select('*')
->offset(0); ->offset(0);
Assert::same( Assert::same(
reformat(' SELECT * , (SELECT count(*) FROM [precteni] AS [P] WHERE P.id_clanku = C.id_clanku) FROM [clanky] AS [C] WHERE id_clanku=123 LIMIT 1'), reformat([
'odbc' => 'SELECT TOP 1 * FROM ( SELECT * , (SELECT count(*) FROM [precteni] AS [P] WHERE P.id_clanku = C.id_clanku) FROM [clanky] AS [C] WHERE id_clanku=123) t',
' SELECT * , (SELECT count(*) FROM [precteni] AS [P] WHERE P.id_clanku = C.id_clanku) FROM [clanky] AS [C] WHERE id_clanku=123 LIMIT 1',
]),
(string) $fluent (string) $fluent
); );
@@ -143,14 +136,16 @@ Assert::same(
); );
$fluent = $conn->select('*') if ($config['system'] === 'mysql') {
->limit(' 1; DROP TABLE users') $fluent = $conn->select('*')
->offset(' 1; DROP TABLE users'); ->limit(' 1; DROP TABLE users')
->offset(' 1; DROP TABLE users');
Assert::same( Assert::same(
reformat(' SELECT * LIMIT 1 OFFSET 1'), reformat(' SELECT * LIMIT 1 OFFSET 1'),
(string) $fluent (string) $fluent
); );
}
$fluent = $conn->select('*')->from('abc') $fluent = $conn->select('*')->from('abc')

View File

@@ -45,8 +45,8 @@ Assert::error(function () use ($row) {
// to array // to array
Assert::same(['product_id' => 1, 'title' => 'Chair'], iterator_to_array($row)); Assert::same(['product_id' => num(1), 'title' => 'Chair'], iterator_to_array($row));
Assert::same(['product_id' => 1, 'title' => 'Chair'], $row->toArray()); Assert::same(['product_id' => num(1), 'title' => 'Chair'], $row->toArray());
// counting // counting
Assert::same(2, count($row)); Assert::same(2, count($row));

View File

@@ -69,3 +69,13 @@ function reformat($s)
trigger_error("Unsupported driver $config[system]", E_USER_WARNING); trigger_error("Unsupported driver $config[system]", E_USER_WARNING);
} }
} }
function num($n)
{
global $config;
if (substr(@$config['dsn'], 0, 5) === 'odbc:' || $config['driver'] === 'sqlite') {
$n = is_float($n) ? "$n.0" : (string) $n;
}
return $n;
}

View File

@@ -6,22 +6,22 @@ USE dibi_test;
DROP TABLE IF EXISTS `products`; DROP TABLE IF EXISTS `products`;
CREATE TABLE `products` ( CREATE TABLE `products` (
`product_id` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL, `title` varchar(100) NOT NULL,
PRIMARY KEY (`product_id`), PRIMARY KEY (`product_id`),
KEY `title` (`title`) KEY `title` (`title`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `products` (`product_id`, `title`) VALUES INSERT INTO `products` (`product_id`, `title`) VALUES
(1, 'Chair'), (1, 'Chair'),
(3, 'Computer'), (3, 'Computer'),
(2, 'Table'); (2, 'Table');
DROP TABLE IF EXISTS `customers`; DROP TABLE IF EXISTS `customers`;
CREATE TABLE `customers` ( CREATE TABLE `customers` (
`customer_id` int(11) NOT NULL AUTO_INCREMENT, `customer_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL, `name` varchar(100) NOT NULL,
PRIMARY KEY (`customer_id`) PRIMARY KEY (`customer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `customers` (`customer_id`, `name`) VALUES INSERT INTO `customers` (`customer_id`, `name`) VALUES
@@ -34,15 +34,15 @@ INSERT INTO `customers` (`customer_id`, `name`) VALUES
DROP TABLE IF EXISTS `orders`; DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` ( CREATE TABLE `orders` (
`order_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL AUTO_INCREMENT,
`customer_id` int(11) NOT NULL, `customer_id` int(11) NOT NULL,
`product_id` int(11) NOT NULL, `product_id` int(11) NOT NULL,
`amount` float NOT NULL, `amount` float NOT NULL,
PRIMARY KEY (`order_id`), PRIMARY KEY (`order_id`),
KEY `customer_id` (`customer_id`), KEY `customer_id` (`customer_id`),
KEY `product_id` (`product_id`), KEY `product_id` (`product_id`),
CONSTRAINT `orders_ibfk_4` FOREIGN KEY (`product_id`) REFERENCES `products` (`product_id`) ON UPDATE CASCADE, CONSTRAINT `orders_ibfk_4` FOREIGN KEY (`product_id`) REFERENCES `products` (`product_id`) ON UPDATE CASCADE,
CONSTRAINT `orders_ibfk_3` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`customer_id`) ON UPDATE CASCADE CONSTRAINT `orders_ibfk_3` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`customer_id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `orders` (`order_id`, `customer_id`, `product_id`, `amount`) VALUES INSERT INTO `orders` (`order_id`, `customer_id`, `product_id`, `amount`) VALUES

View File

@@ -1,15 +1,15 @@
CREATE TABLE products ( CREATE TABLE products (
product_id COUNTER, product_id COUNTER,
title TEXT(50) title TEXT(50)
); );
INSERT INTO products (product_id, title) VALUES (1, 'Chair'); 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 (2, 'Table');
INSERT INTO products (product_id, title) VALUES (3, 'Computer'); INSERT INTO products (product_id, title) VALUES (3, 'Computer');
CREATE TABLE [customers] ( CREATE TABLE [customers] (
[customer_id] COUNTER, [customer_id] COUNTER,
[name] TEXT(50) [name] TEXT(50)
); );
INSERT INTO `customers` (`customer_id`, `name`) VALUES (1, 'Dave Lister'); INSERT INTO `customers` (`customer_id`, `name`) VALUES (1, 'Dave Lister');
@@ -20,10 +20,10 @@ INSERT INTO `customers` (`customer_id`, `name`) VALUES (5, 'Kryten');
INSERT INTO `customers` (`customer_id`, `name`) VALUES (6, 'Kristine Kochanski'); INSERT INTO `customers` (`customer_id`, `name`) VALUES (6, 'Kristine Kochanski');
CREATE TABLE [orders] ( CREATE TABLE [orders] (
[order_id] INTEGER, [order_id] COUNTER,
[customer_id] INTEGER, [customer_id] INTEGER,
[product_id] INTEGER, [product_id] INTEGER,
[amount] FLOAT [amount] FLOAT
); );
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 (1, 2, 1, 7);

View File

@@ -9,9 +9,9 @@ CREATE TABLE products (
); );
INSERT INTO products (product_id, title) VALUES INSERT INTO products (product_id, title) VALUES
(1, 'Chair'), (1, 'Chair'),
(2, 'Table'), (2, 'Table'),
(3, 'Computer'); (3, 'Computer');
SELECT setval('products_product_id_seq', 3, TRUE); SELECT setval('products_product_id_seq', 3, TRUE);
CREATE INDEX title ON products USING btree (title); CREATE INDEX title ON products USING btree (title);

View File

@@ -5,21 +5,21 @@ CREATE TABLE [products] (
CREATE INDEX "title" ON "products" ("title"); CREATE INDEX "title" ON "products" ("title");
INSERT INTO "products" ("product_id", "title") VALUES (1, 'Chair'); 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 (2, 'Table');
INSERT INTO "products" ("product_id", "title") VALUES (3, 'Computer'); INSERT INTO "products" ("product_id", "title") VALUES (3, 'Computer');
CREATE TABLE [customers] ( CREATE TABLE [customers] (
[customer_id] INTEGER PRIMARY KEY NOT NULL, [customer_id] INTEGER PRIMARY KEY NOT NULL,
[name] VARCHAR(100) NOT NULL [name] VARCHAR(100) NOT NULL
); );
INSERT INTO "customers" ("customer_id", "name") VALUES (1, 'Dave Lister'); 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 (2, 'Arnold Rimmer');
INSERT INTO "customers" ("customer_id", "name") VALUES (3, 'The Cat'); 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 (4, 'Holly');
INSERT INTO "customers" ("customer_id", "name") VALUES (5, 'Kryten'); INSERT INTO "customers" ("customer_id", "name") VALUES (5, 'Kryten');
INSERT INTO "customers" ("customer_id", "name") VALUES (6, 'Kristine Kochanski'); INSERT INTO "customers" ("customer_id", "name") VALUES (6, 'Kristine Kochanski');
CREATE TABLE [orders] ( CREATE TABLE [orders] (
[order_id] INTEGER NOT NULL PRIMARY KEY, [order_id] INTEGER NOT NULL PRIMARY KEY,
@@ -30,7 +30,7 @@ CREATE TABLE [orders] (
CONSTRAINT orders_customer FOREIGN KEY (customer_id) REFERENCES customers (customer_id) CONSTRAINT orders_customer FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
); );
INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (1, 2, 1, '7.0'); INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (1, 2, 1, '7.0');
INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (2, 2, 3, '2.0'); INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (2, 2, 3, '2.0');
INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (3, 1, 2, '3.0'); INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (3, 1, 2, '3.0');
INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (4, 6, 3, '5.0'); INSERT INTO "orders" ("order_id", "customer_id", "product_id", "amount") VALUES (4, 6, 3, '5.0');

View File

@@ -11,6 +11,5 @@ extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll extension=php_pdo_sqlite.dll
extension=php_pgsql.dll extension=php_pgsql.dll
extension=php_sqlite.dll
extension=php_sqlite3.dll extension=php_sqlite3.dll
;extension=php_sqlsrv_ts.dll ;extension=php_sqlsrv_ts.dll