mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-02 01:52:10 +09:00
Add unit tests for insert, update, delete queries
This commit is contained in:
parent
89e4b03265
commit
46afc3551a
4 changed files with 74 additions and 3 deletions
8
tests/_data/dbquery/deleteTest.xml
Normal file
8
tests/_data/dbquery/deleteTest.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="deleteTest" action="delete">
|
||||
<tables>
|
||||
<table name="documents" alias="alias" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="in" column="document_srl" var="document_srl_list" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
12
tests/_data/dbquery/insertTest.xml
Normal file
12
tests/_data/dbquery/insertTest.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="insertTest" action="insert" update-duplicate="true">
|
||||
<tables>
|
||||
<table name="document_voted_log" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="document_srl" var="document_srl" filter="number" default="0" notnull="notnull" />
|
||||
<column name="member_srl" var="member_srl" filter="number" default="0" />
|
||||
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
|
||||
<column name="regdate" var="regdate" default="curdate()" />
|
||||
<column name="point" var="point" filter="number" default="0" />
|
||||
</columns>
|
||||
</query>
|
||||
13
tests/_data/dbquery/updateTest.xml
Normal file
13
tests/_data/dbquery/updateTest.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<query id="updateTest" action="update">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="member_srl" var="member_srl" filter="number" default="0" />
|
||||
<column name="voted_count" operation="plus" var="voted_count" filter="number" />
|
||||
<column name="blamed_count" operation="minus" var="blamed_count" filter="number" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="document_srl" var="document_srl" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -154,16 +154,54 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
|||
|
||||
public function testInsertQuery()
|
||||
{
|
||||
|
||||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/insertTest.xml');
|
||||
$this->assertTrue($query instanceof Rhymix\Framework\Parsers\DBQuery\Query);
|
||||
$this->assertEquals('INSERT', $query->type);
|
||||
$this->assertEquals(1, count($query->tables));
|
||||
$this->assertEquals('document_voted_log', $query->tables['document_voted_log']->name);
|
||||
$this->assertEquals(5, count($query->columns));
|
||||
$this->assertTrue($query->columns[0] instanceof Rhymix\Framework\Parsers\DBQuery\ColumnWrite);
|
||||
$this->assertEquals('document_srl', $query->columns[0]->name);
|
||||
$this->assertEquals('document_srl', $query->columns[0]->var);
|
||||
$this->assertEquals('number', $query->columns[0]->filter);
|
||||
$this->assertTrue($query->columns[0]->not_null);
|
||||
$this->assertEquals('ipaddress', $query->columns[2]->name);
|
||||
$this->assertEquals('ipaddress()', $query->columns[2]->default);
|
||||
$this->assertTrue($query->update_duplicate);
|
||||
$this->assertNull($query->groupby);
|
||||
}
|
||||
|
||||
public function testUpdateQuery()
|
||||
{
|
||||
|
||||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/updateTest.xml');
|
||||
$this->assertTrue($query instanceof Rhymix\Framework\Parsers\DBQuery\Query);
|
||||
$this->assertEquals('UPDATE', $query->type);
|
||||
$this->assertEquals(1, count($query->tables));
|
||||
$this->assertEquals('documents', $query->tables['documents']->name);
|
||||
$this->assertEquals(3, count($query->columns));
|
||||
$this->assertTrue($query->columns[0] instanceof Rhymix\Framework\Parsers\DBQuery\ColumnWrite);
|
||||
$this->assertEquals('member_srl', $query->columns[0]->name);
|
||||
$this->assertEquals('member_srl', $query->columns[0]->var);
|
||||
$this->assertEquals('number', $query->columns[0]->filter);
|
||||
$this->assertEquals('0', $query->columns[0]->default);
|
||||
$this->assertEquals(1, count($query->conditions));
|
||||
$this->assertTrue($query->conditions[0] instanceof Rhymix\Framework\Parsers\DBQuery\Condition);
|
||||
$this->assertEquals('equal', $query->conditions[0]->operation);
|
||||
$this->assertEquals('document_srl', $query->conditions[0]->column);
|
||||
$this->assertNull($query->groupby);
|
||||
$this->assertNull($query->navigation);
|
||||
}
|
||||
|
||||
public function testDeleteQuery()
|
||||
{
|
||||
|
||||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/deleteTest.xml');
|
||||
$this->assertTrue($query instanceof Rhymix\Framework\Parsers\DBQuery\Query);
|
||||
$this->assertEquals('DELETE', $query->type);
|
||||
$this->assertEquals(1, count($query->tables));
|
||||
$this->assertEquals('documents', $query->tables['alias']->name);
|
||||
$this->assertEquals(1, count($query->conditions));
|
||||
$this->assertTrue($query->conditions[0] instanceof Rhymix\Framework\Parsers\DBQuery\Condition);
|
||||
$this->assertEquals('in', $query->conditions[0]->operation);
|
||||
$this->assertEquals('document_srl_list', $query->conditions[0]->var);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue