<?php
/* dbff test suite and simple samples :) / 0.98 jm */
require_once 'dbff.php';
print '<html><body>';
///////////////////////////
if (file_exists('test')) {
print '<br>File test exist !!!!! Will not overwrite existing file! delete it manually before test run!';
exit;
}
///////////////////////////
$test_def = array ( 'TABLE_NAME'=>'T', 'FILE_NAME'=>'test',
'cfld' =>array('size'=>40, 'chkNN'=>true, 'chkMinLen'=>15),
'ifld' =>array('size'=>10, 'type'=>'INT', 'chkNN'=>true, 'chkMin'=>9),
'nfld' =>array('size'=>10, 'type'=>'NUMBER', 'chkNN'=>true, 'chkMax'=>999999),
'lfld' =>array('size'=>10, 'type'=>'NUMBER', 'chkLIST'=>array (1,2,3)),
'em' =>array('size'=>50, 'type'=>'EMAIL'),
'dfld' =>array('size'=>8, 'type'=>'DATE','default'=>'now'),
'dtfld' =>array('size'=>14, 'type'=>'DATETIME'));
$db = new dbff;
$db->recdef = $test_def;
$db->read();
$d = array ('now', '20060305', '20050812', '23-May-03',
'5/jan/2007', '1-aug-2005', '1-jan-1902', '31-december-2000',
'11 january 1906', '6 feb 1992', '2006-07-22', '2005/03/2',
'1991-mar-31', '31-mar-1991', '1991-march-31',
'25-JAN-2007', '10.Aug.2005', '23/10/2005', '31-dec-2037',
'3-Jun-97', '93-Jun-5', '20010100', '1-JAN-2039',
'32-december-2000', '1899.dec.22', '19990001', '32-May-2002' ); /* 20 valid 7 invalid */
print '<br>String to date conversion tests, 20 valid 7 invalid';
$i=0;
while ($x = current($d)) {
$i++;
$res = $db->str2ts($x);
if (is_null($res)) print "<br>$i) $x ...... invalid";
else print "<br>$i) $x =>".date('Y-M-d H:i:s',$res);
next($d);
}
$d = array ('now', '20060305192233', '11-january-1906 12:23:34', '23/10/2005 11:21:31',
'15-Mar-2001 11:12:03', '5-jan-2007 05:15:01', '1-aug-2005 1:01:31',
'12:53 15-Mar-2001', '11:33:44 11-january-1906', '31-december-2000 23:23',
'2006-07-22 12:23:34', '2005/03/2 11:21:31', '25-JAN-2007 05:15:01pm',
'10-Aug-2005 1:01AM', '12:53 29-feb-2001', '1999-dec-22 51:21:31',
'20060305116733', '20060305252233', '20060305192299' ); /* 14 val 5 inv */
print '<br><br>String to datetime conversion tests, 14 valid 5 invalid';
$i=0;
while ($x = current($d)) {
$i++;
$res = $db->str2ts($x);
if (is_null($res)) print "<br>$i) $x ...... invalid";
else print "<br>$i) $x =>".date('Y-M-d H:i:s',$res);
next($d);
}
print '<br><br>Validation tests set 1, should all be ok';
$dr = array ('1 Correct record', 12345, 234.56, 1, 'abc@cde.com', '10-aug-2000', '20-sep-2001 12:22:33');
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('2 Ok email test record', 123, 36, NULL, 'a@abc.com', '10-aug-2000', '20-10-2001 12:22:33');
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('3 Ok List test record', 123, 1234, 3, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
print '<br><br>Validation tests set 1, these should fail';
$dr = array ('10 Missing field record', 234.56, '10-aug-2000', '20-sep-2001 12:22:33');
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('11 Int test record', '12a45', 234.56, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('12 Int test record', 12.45, 234.56, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('13 Number test record', 12345, '234:56', NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('14 Number test record', 12345, 'a2356', NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('15 char length test record 123456789012345', 123, 36, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('16 err email test record', 123, 36, NULL, 'aabc.com', '10-aug-2000', '20-10-2001 12:22:33');
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('17 min test record', 3, 36, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('18 max test record', 123, 1000000, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('19 minlen test', 123, 1234, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('20 Err List test record', 123, 1234, 5, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
unset($db);
print '<br><br>Validation tests set 2, should be ok';
$test_def = array ( 'TABLE_NAME'=>'T', 'FILE_NAME'=>'test',
'cfld' =>array('size'=>40, 'chkNN'=>true, 'chkMinLen'=>15),
'ifld' =>array('size'=>10, 'type'=>'INT', 'chkNN'=>true),
'nfld' =>array('size'=>10, 'type'=>'NUMBER', 'chkNN'=>true),
'lfld' =>array('size'=>10, 'type'=>'NUMBER'),
'em' =>array('size'=>50, 'type'=>'EMAIL'),
'dfld' =>array('size'=>8, 'type'=>'DATE','default'=>'now'),
'dtfld' =>array('size'=>14, 'type'=>'DATETIME'));
/* if (isset($atts['CHKMOD10']) && !chkMod10($atts['CHKMOD10'])) {
if (isset($atts['CHKFMT']) && sprintf($vrec[$i],$atts['CHKFMT'])<>$vrec[$i]) {
*/
$db = new dbff;
$db->recdef = $test_def;
$db->read();
$dr = array ('30 Int zero test record', 0, 234.56, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('31 Int zero test record', '0', 234.56, NULL, NULL, NULL, NULL); // string zero ?? from forms
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('32 Int zero test record', '0000', 234.56, NULL, NULL, NULL, NULL); // string zero ?? from forms
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('33 Number zero test record', 12345, 0.0, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
print '<br><br>Validation tests set 2, should fail';
$dr = array ('34 Int zero test record', '0.0', 234.56, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
$dr = array ('35 Int zero test record', '0.0000001', 234.56, NULL, NULL, NULL, NULL);
if ($db->validateRec($dr)) print '<br>Test record '.$dr[0]. ' Passed ok';
else print '<br>Test record '.$dr[0]. " did NOT validate: $dbfferr";
unset($db);
unset ($dr);
print '<br><br>Insert tests set 3, should be ok';
$test_def = array ( 'TABLE_NAME'=>'T', 'FILE_NAME'=>'test',
'cfld' =>array('size'=>40, 'chkNN'=>true),
'ifld' =>array('size'=>10, 'type'=>'INT', 'chkNN'=>true),
'nfld' =>array('size'=>10, 'type'=>'NUMBER', 'chkNN'=>true),
'pkfld' =>array('size'=>10, 'pk'=>'sequence'),
'em' =>array('size'=>50, 'type'=>'EMAIL'),
'dfld' =>array('size'=>8, 'type'=>'DATE','default'=>'now'),
'dtfld' =>array('size'=>14, 'type'=>'DATETIME'));
$db = new dbff;
$db->recdef = $test_def;
$db->read();
$tr = array ('This', 1, 2.5, 1, 'abc@cde.com', '10-aug-2000', '20-sep-2001 12:22:33');
print '<br>';
for ($i=1; $i<12; $i++) {
$y = 2000+$i;
$tr[0] = 'Insert record number '.$i;
$tr[1] += $i;
$tr[2] +=$i;
$tr[5] = $i.'-'.$i.'-'.$y;
if ($db->insert($tr)) print " Insert rec $i ok ";
else print "<br>Insert rec $i failed $dbfferr";
}
print "<br>The following tests should be error free";
$hits = $db->select();
print "<br>$hits records selected";
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[3] $rec[0] $rec[1] $rec[2] $rec[5]";
print '<br><br>Select test set 5 date between 31-dec-2002 and 1-jan-2007';
$hits = $db->select('dfld','31-dec-2002','GT');
$hits = $db->reselect('dfld','1-jan-2007','LT');
print "<br>$hits records selected";
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[3] $rec[0] $rec[1] $rec[2] $rec[5]";
print '<br><br>Update test set 6, set ifld to zero';
$hits = $db->updateSelected('ifld',0);
print "<br>$hits records updated";
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[3] $rec[0] $rec[1] $rec[2] $rec[5]";
print '<br><br>print with field names test set 7, same data as before';
while ($rec = $db->selectGet()) print "<br>".$rec['T.CFLD'].' '.$rec['T.IFLD'].' '.
$rec['T.NFLD'].' '.$rec['T.DFLD'];
print '<br><br>Delete test set 8, print the rest';
$hits = $db->deleteSelected();
print "<br>$hits records deleted";
$hits = $db->select();
print "<br>$hits records selected";
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[3] $rec[0] $rec[1] $rec[2] $rec[5]";
if (!empty($db->errstk)) print_r($db->errstk);
unset($db);
print '<br><br>Primary/Unique key tests set 9, should fail at duplicate keys and generated dates';
$test_def = array ( 'TABLE_NAME'=>'T', 'FILE_NAME'=>'test',
'cfld' =>array('size'=>40, 'chkNN'=>true),
'ukfld' =>array('size'=>10, 'type'=>'INT', 'uk'=>true),
'nfld' =>array('size'=>10, 'type'=>'NUMBER', 'chkNN'=>true),
'pkfld' =>array('size'=>10, 'type'=>'INT', 'pk'=>true),
'em' =>array('size'=>50, 'type'=>'EMAIL'),
'dfld' =>array('size'=>8, 'type'=>'DATE','default'=>'now'),
'dtfld' =>array('size'=>14, 'type'=>'DATETIME'));
$db = new dbff;
$db->recdef = $test_def;
$db->read();
$dr = array ('Pk/uk test', 1, 2.5, 1, 'abc@cde.com', '10-aug-2000', '20-sep-2001 12:22:33');
print '<br>';
for ($i=1; $i<12; $i++) {
$y = 2000+$i;
$dr[0] = 'Insert record number '.$i; $dr[1] += $i; $dr[2] =$i; $dr[3] =$i; $dr[5] = $i.'-'.$i.'-'.$y;
if ($db->insert($dr)) print " Insert rec $i ok ";
else print "<br>Insert rec $i failed $dbfferr";
}
for ($i=1; $i<20; $i+=2) {
$y = 2000+$i;
$dr[0] = 'Insert record number '.$i; $dr[1] = $i+1; $dr[2] +=$i; $dr[3] =$i; $dr[5] = $i.'-'.$i.'-'.$y;
if ($db->insert($dr)) print " Insert rec $i ok ";
else print "<br>Insert rec $i failed $dbfferr";
}
$hits = $db->select();
print "<br>$hits records selected";
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[3] $rec[0] $rec[1] $rec[5]";
unset($db);
print '<br><br>Write tests 10000 record, test set 10';
$test_def = array ( 'TABLE_NAME'=>'T', 'FILE_NAME'=>'test',
'pkfld' =>array('size'=>10, 'type'=>'INT', 'pk'=>'sequence'),
'ukfld' =>array('size'=>10, 'type'=>'INT', 'uk'=>true),
'nfld' =>array('size'=>16, 'type'=>'NUMBER', 'chkNN'=>true),
'dtfld' =>array('size'=>14, 'type'=>'DATETIME','default'=>'now'));
$db = new dbff;
$db->recdef = $test_def;
$db->changelog = FALSE;
$dr = array (0,0,0,NULL);
print '<br>Started: '.$db->str2datetime('now');
for ($i=1; $i<10000; $i++) {
$j +=$i;
$dr[1] = $i; $dr[2] =$j/($i*3);
if (!$db->insert($dr)) print "<br>Insert rec $i failed $dbfferr";
}
if (!$db->commit()) print $dbfferr;
print ' Written at: '.$db->str2datetime('now');
if (!empty($db->errstk)) print_r($db->errstk);
unset($db);
print '<br><br>Read tests 10000 record, test set 11';
$test_def = array ( 'TABLE_NAME'=>'T', 'FILE_NAME'=>'test',
'pkfld' =>array('size'=>10, 'type'=>'INT', 'pk'=>'sequence'),
'ukfld' =>array('size'=>10, 'type'=>'INT', 'uk'=>true),
'nfld' =>array('size'=>16, 'type'=>'NUMBER', 'chkNN'=>true),
'dtfld' =>array('size'=>14, 'type'=>'DATETIME','default'=>'now'));
$db = new dbff;
$db->recdef = $test_def;
$db->changelog = FALSE;
print '<br>Started: '.$db->str2datetime('now');
$hits = $db->select();
print " All $hits records selected";
print ' Read at: '.$db->str2datetime('now');
print "<br>Search records between 1000 and 2000 in fld 2 ";
print '<br>Started: '.$db->str2datetime('now');
$hits = $db->select('ukfld',1000,'ge');
$hits = $db->reselect('ukfld',2000,'le');
print " $hits records selected";
print ' Selected at: '.$db->str2datetime('now');
print "<br>Search one record 1111 in fld 2 ";
print '<br>Started: '.$db->str2datetime('now');
$hits = $db->select('ukfld',1111);
print " $hits records selected";
print ' Selected at: '.$db->str2datetime('now');
print "<br>Search records >555.6 and < 558.4 in num fld 3 and show sort result";
print '<br>Started: '.$db->str2datetime('now');
$hits = $db->select('nfld',555.6,'gt');
$hits = $db->reselect('nfld',558.4,'lt');
print " $hits records selected";
print ' Selected at: '.$db->str2datetime('now');
$hits = $db->selectSort('nfld');
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[0] $rec[2]";
print "<br><br>Update all records one at the time with new datetime in num fld 4";
print '<br>Started: '.$db->str2datetime('now');
$hits = $db->select();
$ts = time();
while ($rec = $db->selectGet(FALSE)) {
$ts -= ($rec[1] * 10);
$d = date('YmdHis',$ts);
$newrec = array($rec[0], $rec[1], $rec[2], $d);
if (!$db->updByRn($db->getSelectedRn(),$newrec)) print "<br>Update failed $dbfferr";
}
print ' Updated at: '.$db->str2datetime('now');
print "<br>Write update";
$db->commit();
print ' at: '.$db->str2datetime('now');
print "<br><br>Search records with dates in jan 1991 and show sort result";
print '<br>Started: '.$db->str2datetime('now');
$hits = $db->select('dtfld','1-jan-1991','gt');
$hits = $db->reselect('dtfld','31-jan-1991','lt');
print " $hits records selected";
print ' Selected at: '.$db->str2datetime('now');
$hits = $db->selectSort('dtfld');
while ($rec = $db->selectGet(FALSE)) print "<br>$rec[0] $rec[3]";
if (!empty($db->errstk)) print_r($db->errstk);
$db->rollback();
if (file_exists('test')) unlink('test');
print '<br>End test, check errors<br>';
print '</body></html>';
exit;
?>
|