Skip to content

Commit

Permalink
DB tests
Browse files Browse the repository at this point in the history
  • Loading branch information
parf committed May 1, 2018
1 parent 0b8a6a6 commit 075eaa3
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# connection-name: engine:user:password@host
emp: mysql:parf:[email protected]
emp-x: MysqlX:parf:[email protected]
emp-test: test:parf:mv700@localhost
products: Pgsql:parf:[email protected]

20 changes: 20 additions & 0 deletions standalone-app/SampleApp/tests/DB-pgsql.stest
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/env stest
<?php

$d = \hb\DB("products");
'Instance(hb\\db\\adapter\\Pgsql)';

$d->select("* from products", ['id' => 12]);
[["created_at"=>'2011-01-01 15:00:00-05', "deleted_at"=>NULL, "id"=>12, "price"=>'9.99', "tags"=>'{Music}', "title"=>'Holiday CD']];

$d->select("a.attname
FROM pg_index i
JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
WHERE i.indrelid = 'products'::regclass
AND i.indisprimary;", [], "column");
['id'];

$d->pk("products");
['id'];
json_encode($d->fields("products"));
'{"id":["int4",null],"title":["varchar",255],"price":["numeric",null],"created_at":["timestamptz",null],"deleted_at":["timestamptz",null],"tags":["_varchar",null]}';
25 changes: 25 additions & 0 deletions standalone-app/SampleApp/tests/DB-test.stest
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/env stest
<?php

//
// show SQL instead of executing it
//

$d = \hb\DB("emp-test");
'Instance(hb\\db\\adapter\\Test)';
$d->select("* from employees.employees", ['emp_no' => 499971]);
['SELECT * from employees.employees
WHERE emp_no=:emp_no', ["emp_no"=>499971], 'assoc'];

/**
* 1. value in array. field in (a,b,c)
* 2. order-by
* 3. limit
*/
$d->select("fname_id, lname_id from hb.profile", ["fname_id" => 1, 'lname_id' => [1,2,3], "_limit"=> "20,10", '_order' => 'id desc'] );
['Error:hb\\Error', 'DB where-value must be scalar'];
$d->_select("fname_id, lname_id from hb.profile", ["fname_id" => 1, 'lname_id' => [1,2,3], "_limit"=> "20,10", '_order' => 'id desc'] );
['SELECT fname_id, lname_id from hb.profile
WHERE fname_id=:fname_id AND lname_id IN (:lname_id_0,:lname_id_1,:lname_id_2)
ORDER BY id desc
LIMIT 20,10', ["fname_id"=>1, "lname_id_0"=>1, "lname_id_1"=>2, "lname_id_2"=>3], 'assoc'];
63 changes: 63 additions & 0 deletions standalone-app/SampleApp/tests/DB.stest
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/env stest
<?php

$d = \hb\DB("emp");
'Instance(hb\\db\\adapter\\Mysql)';
$dx = \hb\DB("emp-x");
'Instance(hb\\db\\adapter\\MysqlX)';
$dt = \hb\DB("emp-test");
'Instance(hb\\db\\adapter\\Test)';

$d->select("* from employees.employees", ['emp_no' => 499971]);
[["birth_date"=>'1963-12-28', "emp_no"=>'499971', "first_name"=>'Uwe', "gender"=>'M', "hire_date"=>'1989-02-26', "last_name"=>'Uludag']];

$dt->_select("* from employees.employees", ['emp_no => :a' => 499971, 'emp_no <= :b' => 499981]);
['SELECT * from employees.employees
WHERE emp_no => :a AND emp_no <= :b', ["a"=>499971, "b"=>499981], 'assoc'];

// force-extended syntax
$d->_select("emp_no, concat(first_name, ' ', last_name) name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974]);
[["emp_no"=>'499971', "name"=>'Uwe Uludag'], ["emp_no"=>'499972', "name"=>'Katsuo Leuchs'], ["emp_no"=>'499973', "name"=>'Lobel Taubman'], ["emp_no"=>'499974', "name"=>'Shuichi Piazza']];

// EXTENDED SYNTAX

$dx->select("emp_no, concat(first_name, ' ', last_name) name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "num");
[['499971', 'Uwe Uludag'], ['499972', 'Katsuo Leuchs'], ['499973', 'Lobel Taubman'], ['499974', 'Shuichi Piazza']];

$dx->select("emp_no, concat(first_name, ' ', last_name) name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "column");
['499971', '499972', '499973', '499974'];
$dx->select("concat(first_name, ' ', last_name) name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "column");
['Uwe Uludag', 'Katsuo Leuchs', 'Lobel Taubman', 'Shuichi Piazza'];
$dx->column("concat(first_name, ' ', last_name) name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974]);
['Uwe Uludag', 'Katsuo Leuchs', 'Lobel Taubman', 'Shuichi Piazza'];

$dx->hash("emp_no, concat(first_name, ' ', last_name) name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974]);
["499971"=>'Uwe Uludag', "499972"=>'Katsuo Leuchs', "499973"=>'Lobel Taubman', "499974"=>'Shuichi Piazza'];

$dx->select("emp_no, first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "group_column");
["499971"=>['Uwe'], "499972"=>['Katsuo'], "499973"=>['Lobel'], "499974"=>['Shuichi']];

$dx->select("emp_no, first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "group");
["499971"=>[["first_name"=>'Uwe', "last_name"=>'Uludag']], "499972"=>[["first_name"=>'Katsuo', "last_name"=>'Leuchs']], "499973"=>[["first_name"=>'Lobel', "last_name"=>'Taubman']], "499974"=>[["first_name"=>'Shuichi', "last_name"=>'Piazza']]];
$dx->select("emp_no, first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "unique");
["499971"=>["first_name"=>'Uwe', "last_name"=>'Uludag'], "499972"=>["first_name"=>'Katsuo', "last_name"=>'Leuchs'], "499973"=>["first_name"=>'Lobel', "last_name"=>'Taubman'], "499974"=>["first_name"=>'Shuichi', "last_name"=>'Piazza']];
$dx->select("first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "one");
'Uwe';
$dx->one("first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "one");
'Uwe';
$dx->select("emp_no, first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "row");
["emp_no"=>'499971', "first_name"=>'Uwe', "last_name"=>'Uludag'];
$dx->select("emp_no, first_name, last_name from employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974], "rowNum");
['499971', 'Uwe', 'Uludag'];
$dx->rows("employees.employees", ['emp_no >= :a' => 499971, 'emp_no <= :b' => 499974]);
["499971"=>["birth_date"=>'1963-12-28', "first_name"=>'Uwe', "gender"=>'M', "hire_date"=>'1989-02-26', "last_name"=>'Uludag'], "499972"=>["birth_date"=>'1957-07-25', "first_name"=>'Katsuo', "gender"=>'F', "hire_date"=>'1989-11-23', "last_name"=>'Leuchs'], "499973"=>["birth_date"=>'1963-06-03', "first_name"=>'Lobel', "gender"=>'M', "hire_date"=>'1994-02-01', "last_name"=>'Taubman'], "499974"=>["birth_date"=>'1956-09-10', "first_name"=>'Shuichi', "gender"=>'F', "hire_date"=>'1989-09-16', "last_name"=>'Piazza']];

# Errors
#$d->select("aaa");
# ['Error:hb\\db\\SqlError', '{"err":"Unknown column \'aaa\' in \'field list\'","sql":"SELECT aaa","code":"42S22"}'];

$d->pk("employees.employees");
['emp_no'];
$d->fields("employees.employees");
["birth_date"=>['date', NULL], "emp_no"=>['int', NULL], "first_name"=>['varchar', '14'], "gender"=>['enum', '1'], "hire_date"=>['date', NULL], "last_name"=>['varchar', '16']];

9 changes: 0 additions & 9 deletions standalone-app/SampleApp/tests/DBE.stest

This file was deleted.

5 changes: 5 additions & 0 deletions standalone-app/SampleApp/tests/t.stest
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/env stest
<?php

$d = \hb\DB("emp");
'Instance(hb\\db\\adapter\\Mysql)';

0 comments on commit 075eaa3

Please sign in to comment.