X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fpq-gateway;a=blobdiff_plain;f=tests%2Flib%2Fpq%2FGateway%2FRowsetTest.php;h=6f16595994316ba4a49c0da7b89d275ca57bf463;hp=c0ff003b204df80f8bd613d3946c077d1fd2b259;hb=348c73cdaf65cf9df2d6f582a96bf8694f1255f5;hpb=4879955d1b86d606dc24401f26ebde9be7612fbf diff --git a/tests/lib/pq/Gateway/RowsetTest.php b/tests/lib/pq/Gateway/RowsetTest.php index c0ff003..6f16595 100644 --- a/tests/lib/pq/Gateway/RowsetTest.php +++ b/tests/lib/pq/Gateway/RowsetTest.php @@ -17,16 +17,15 @@ class RowsetTest extends \PHPUnit_Framework_TestCase { protected $table; protected function setUp() { - $this->conn = new \pq\Connection(PQ_DSN); - $this->conn->exec(PQ_TEST_DROP_TABLE); - $this->conn->exec(PQ_TEST_CREATE_TABLE); - $this->conn->exec(PQ_TEST_CREATE_DATA); - - $this->table = new Table(PQ_TEST_TABLE_NAME, $this->conn); + $this->conn = new \pq\Connection(PQ_TEST_DSN); + $this->conn->exec(PQ_TEST_SETUP_SQL); + Table::$defaultConnection = $this->conn; + $this->table = new Table("test"); + $this->table->getQueryExecutor()->attach(new \QueryLogger()); } protected function tearDown() { - $this->conn->exec(PQ_TEST_DROP_TABLE); + $this->conn->exec(PQ_TEST_TEARDOWN_SQL); } public function test__invoke() { @@ -70,6 +69,13 @@ class RowsetTest extends \PHPUnit_Framework_TestCase { $this->assertCount(1, $rowset); $this->assertCount(4, $this->table->find()); } + + public function testCreateFail() { + $this->setExpectedException("\\pq\\Exception"); + $rowset = new Rowset($this->table); + $rowset->append(new Row($this->table, array("foo" => "bar"), true)); + $rowset->create(); + } public function testUpdate() { $rowset = $this->table->find(); @@ -83,18 +89,34 @@ class RowsetTest extends \PHPUnit_Framework_TestCase { }); } + public function testUpdateFail() { + $this->setExpectedException("pq\\Exception"); + $rowset = $this->table->find(); + $rowset->apply(function($row) { + $row->data = new \pq\Query\Expr("die"); + }); + $rowset->update(); + + } + public function testDelete() { $this->table->find()->delete(); $this->assertCount(0, $this->table->find()); } + public function testDeleteFail() { + $this->setExpectedException("Exception"); + $rowset = new Rowset($this->table); + $rowset->append(new Row($this->table, array("xx" => 0)))->delete(); + } + public function testJsonSerialize() { $json = sprintf('[{"id":"1","created":"%s","counter":"-1","number":"-1.1","data":"yesterday"}' .',{"id":"2","created":"%s","counter":"0","number":"0","data":"today"}' .',{"id":"3","created":"%s","counter":"1","number":"1.1","data":"tomorrow"}]', - date("Y-m-d H:i:s", strtotime("yesterday")), - date("Y-m-d H:i:s", strtotime("today")), - date("Y-m-d H:i:s", strtotime("tomorrow")) + new \pq\DateTime("yesterday"), + new \pq\DateTime("today"), + new \pq\DateTime("tomorrow") ); $this->assertJsonStringEqualsJsonString($json, json_encode($this->table->find())); }