DIR : /home/kozerus/public_html/dgs/scripts/tests/EntityDataTest.php
/home/kozerus/public_html/dgs/scripts/tests
<?php
/*
Dragon Go Server
Copyright (C) 2001- Erik Ouchterlony, Rod Ival, Jens-Uwe Gaspar
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Author: Jens-Uwe Gaspar */
require_once 'DgsUnitTest.php';
require_once 'scripts/tests/UnitTestHelper.php';
require_once 'include/db_classes.php';
/**
* Test class for EntityData.
* Generated by PHPUnit_Util_Skeleton on 2010-01-06 at 16:03:45.
*/
class EntityDataTest extends DgsUnitTest {
private $entity;
private $data;
/** Sets up the fixture. */
protected function setUp() {
UnitTestHelper::clearErrors(ERROR_MODE_PRINT);
$this->entity = new Entity( 'Table',
FTYPE_PKEY, 'ID',
FTYPE_AUTO, 'ID',
FTYPE_INT, 'ID', 'i1', 'i2',
FTYPE_FLOAT, 'f1',
FTYPE_TEXT, 't1', 't2',
FTYPE_DATE, 'd1', 'd2',
FTYPE_ENUM, 'e1', 'e2'
);
$this->data = $this->entity->newEntityData();
}
public function test_set_value() {
$this->data->set_value('ID', 4711);
$this->assertEquals( 4711, $this->data->values['ID'] );
$this->assertEquals( "ID[4711]", $this->data->get_pkey_string() );
UnitTestHelper::clearErrors(ERROR_MODE_TEST);
$this->data->set_value('unknown', 7);
$this->assertEquals( 1, UnitTestHelper::countErrors() );
}
public function test_set_get_query_value() {
$qval = "77*RAND()";
$this->data->set_value('ID', 4711);
$this->data->set_query_value('i1', $qval );
$this->assertEquals( $qval, $this->data->query_values['i1'] );
$this->assertEquals( $qval, $this->data->get_query_value('i1') );
$this->assertEquals( '3-1', $this->data->get_query_value('i2', '3-1') );
}
public function test_get_value() {
$this->data->set_value('ID', 4711);
$this->data->set_value('t2', 15);
$this->assertEquals( 4711, $this->data->get_value('ID') );
$this->assertNull( $this->data->get_value('t1') );
$this->assertEquals( 'abc', $this->data->get_value('t1', 'abc') );
$this->assertEquals( 15, $this->data->get_value('t2', 'abc') );
$this->assertNull( $this->data->get_value('unknown') );
}
public function test_remove_value() {
$qval = "1+2+3";
$this->data->set_value('ID', 4711);
$this->data->set_query_value('i1', $qval);
$this->assertEquals( 4711, $this->data->get_value('ID') );
$this->data->remove_value('ID');
$this->assertNull( $this->data->get_value('ID') );
$this->assertEquals( $qval, $this->data->get_query_value('i1') );
$this->data->set_value('i1', 123);
$this->data->set_query_value('i1', $qval);
$this->data->remove_value('i1', false);
$this->assertNull( $this->data->get_value('i1') );
$this->assertEquals( $qval, $this->data->get_query_value('i1') );
$this->data->set_value('i1', 123);
$this->data->set_query_value('i1', $qval);
$this->data->remove_value('i1');
$this->assertNull( $this->data->get_value('i1') );
$this->assertNull( $this->data->get_query_value('i1') );
}
public function test_get_sql_value() {
$this->data->set_value('ID', 4711);
$this->assertEquals( "4711", $this->data->get_sql_value('ID') );
$this->data->set_value('i1', 0);
$this->assertEquals( "0", $this->data->get_sql_value('i1') );
$this->data->set_value('i2', '');
$this->assertEquals( "0", $this->data->get_sql_value('i2') );
$this->data->set_value('t1', 12);
$this->assertEquals( "'12'", $this->data->get_sql_value('t1') );
$this->data->set_value('e2', 'e-val');
$this->assertEquals( "'e-val'", $this->data->get_sql_value('e2') );
$this->data->set_value('d1', 12345678);
$this->assertEquals( "FROM_UNIXTIME(12345678)", $this->data->get_sql_value('d1') );
$qval = "1+2+3";
$this->data->set_value('i1', -7);
$this->data->set_query_value('i1', $qval);
$this->assertEquals( "-7", $this->data->get_sql_value('i1') );
$this->data->remove_value('i1', false);
$this->assertEquals( $qval, $this->data->get_sql_value('i1') );
}
public function test_build_sql_insert() {
$this->data->set_value('ID', 4711);
$this->data->set_value('i1', 0);
$this->data->set_value('i2', '');
$this->data->set_value('t1', 12);
$this->data->set_value('e2', 'e-val');
$this->data->set_value('d1', 12345678);
$this->data->set_value('f1', 1.3);
$this->assertEquals(
"INSERT INTO Table SET i1=0, i2=0, t1='12', e2='e-val', d1=FROM_UNIXTIME(12345678), f1=1.3",
$this->data->build_sql_insert() );
}
public function test_build_sql_insert_WithQueryValues() {
$this->data->set_value('ID', 4711);
$this->data->set_value('i1', 0);
$this->data->set_query_value('i2', "1+2+3");
$this->assertEquals(
"INSERT INTO Table SET i1=0, i2=1+2+3",
$this->data->build_sql_insert() );
}
public function test_build_sql_insert_NoAutoKey() {
$e = new Entity( 'NTable',
FTYPE_PKEY, 'id',
FTYPE_INT, 'id', 'f1'
);
$d = $e->newEntityData();
$d->set_value('id', 1);
$d->set_value('f1', 2);
$this->assertEquals( "INSERT INTO NTable SET id=1, f1=2", $d->build_sql_insert() );
}
public function test_build_sql_insert_values() {
$this->data->set_value('ID', 4711);
$this->data->set_value('d1', 12345678);
$this->data->set_value('e2', 'e-val');
$this->data->set_value('i1', 0);
$this->data->set_value('i2', '');
$this->data->set_value('f1', '0.5');
$this->data->set_value('t1', 12);
$this->assertEquals(
"INSERT INTO Table (i1,i2,f1,t1,t2,d1,d2,e1,e2) VALUES ",
$this->data->build_sql_insert_values(true) );
$this->assertEquals(
"(0,0,0.5,'12',DEFAULT(t2),FROM_UNIXTIME(12345678),DEFAULT(d2),DEFAULT(e1),'e-val')",
$this->data->build_sql_insert_values() );
$this->data->remove_value('i2');
$this->data->set_query_value('i2', "7*RAND()");
$this->assertEquals(
"(0,7*RAND(),0.5,'12',DEFAULT(t2),FROM_UNIXTIME(12345678),DEFAULT(d2),DEFAULT(e1),'e-val')",
$this->data->build_sql_insert_values() );
}
public function test_build_sql_update() {
$this->data->set_value('ID', 4711);
$this->data->set_value('i1', 0);
$this->data->set_value('i2', '');
$this->data->set_value('t1', 12);
$this->data->set_value('e2', 'e-val');
$this->data->set_value('d1', 12345678);
$this->assertEquals(
"UPDATE Table SET i1=0, i2=0, t1='12', e2='e-val', d1=FROM_UNIXTIME(12345678) WHERE ID=4711",
$this->data->build_sql_update(0) );
$this->assertEquals(
"UPDATE Table SET i1=0, i2=0, t1='12', e2='e-val', d1=FROM_UNIXTIME(12345678) WHERE ID=4711 LIMIT 1",
$this->data->build_sql_update() );
$this->data->remove_value('i2');
$this->data->set_query_value('i2', "7*RAND()");
$arr = $this->data->build_sql_update(3, true);
$this->assertEquals(
"UPDATE Table SET i1=0, t1='12', e2='e-val', d1=FROM_UNIXTIME(12345678), i2=7*RAND()",
$arr[0] );
$this->assertEquals( "WHERE ID=4711", $arr[1] );
$this->assertEquals( 'LIMIT 3', $arr[2] );
}
public function test_build_sql_delete() {
$this->data->set_value('ID', 4711);
$this->data->set_value('i1', 0);
$this->data->set_value('t1', 12);
$this->assertEquals( "DELETE FROM Table WHERE ID=4711", $this->data->build_sql_delete(0) );
$this->assertEquals( "DELETE FROM Table WHERE ID=4711 LIMIT 1", $this->data->build_sql_delete() );
$this->assertEquals( "DELETE FROM Table WHERE ID=4711 LIMIT 2", $this->data->build_sql_delete(2) );
}
public function test_multi_field_pkey() {
$e = new Entity( 'MTable',
FTYPE_PKEY, 'id1', 'id2',
FTYPE_INT, 'id1', 'id2', 'f1'
);
$d = $e->newEntityData();
$d->set_value('id1', 1);
$d->set_value('id2', 2);
$d->set_value('f1', 3);
$this->assertEquals( "id1[1],id2[2]", $d->get_pkey_string() );
$this->assertEquals( "INSERT INTO MTable SET id1=1, id2=2, f1=3", $d->build_sql_insert() );
$this->assertEquals( "INSERT INTO MTable (id1,id2,f1) VALUES ", $d->build_sql_insert_values(true) );
$this->assertEquals( "(1,2,3)", $d->build_sql_insert_values() );
$this->assertEquals( "UPDATE MTable SET f1=3 WHERE id1=1 AND id2=2", $d->build_sql_update(0) );
$this->assertEquals( "DELETE FROM MTable WHERE id1=1 AND id2=2", $d->build_sql_delete(0) );
}
}
?>
//
koh5_pano
Drag mouse to navigate.
Navigation
- Left/Right Mouse drag: Changes camera heading.
- Up/Sown Mouse drag: Changes camera pitch.
- Scroll wheel: Changes camera field of view.
- I-Key: Displays Info panel with canvas size, image size and FPS.
17.Aug.2010, Martin Wengenmayer