compatibility with ext-pq/master
[m6w6/pq-gateway] / tests / lib / pq / Gateway / RowsetTest.php
index 48ac624574615cc366a655835c34cfc56350b72e..61f6b11af4668fa1b30c8e8566b47eba8de6cfa9 100644 (file)
@@ -18,16 +18,14 @@ class RowsetTest extends \PHPUnit_Framework_TestCase {
 
        protected function setUp() {
                $this->conn = new \pq\Connection(PQ_TEST_DSN);
-               $this->conn->exec(PQ_TEST_TABLE_CREATE);
-               $this->conn->exec(PQ_TEST_REFTABLE_CREATE);
-               $this->conn->exec(PQ_TEST_DATA);
+               $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_REFTABLE_DROP);
-               $this->conn->exec(PQ_TEST_TABLE_DROP);
+               $this->conn->exec(PQ_TEST_TEARDOWN_SQL);
        }
 
        public function test__invoke() {
@@ -73,7 +71,7 @@ class RowsetTest extends \PHPUnit_Framework_TestCase {
        }
        
        public function testCreateFail() {
-               $this->setExpectedException("\\pq\\Exception");
+               $this->setExpectedException("\\OutOfBoundsException");
                $rowset = new Rowset($this->table);
                $rowset->append(new Row($this->table, array("foo" => "bar"), true));
                $rowset->create();
@@ -107,18 +105,22 @@ class RowsetTest extends \PHPUnit_Framework_TestCase {
        }
 
        public function testDeleteFail() {
-               $this->setExpectedException("pq\\Exception");
+               $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"))
+               $yday = new \pq\DateTime("yesterday");
+               $tday = new \pq\DateTime("today");
+               $tmrw = new \pq\DateTime("tomorrow");
+               
+               $yday->format = $tday->format = $tmrw->format = "Y-m-d H:i:s.u";
+               
+               $json = sprintf('[{"id":1,"created":"%s","counter":-1,"number":-1.1,"data":"yesterday","list":[-1,0,1],"prop":null}'
+                       .',{"id":2,"created":"%s","counter":0,"number":0,"data":"today","list":[0,1,2],"prop":null}'
+                       .',{"id":3,"created":"%s","counter":1,"number":1.1,"data":"tomorrow","list":[1,2,3],"prop":null}]',
+                       $yday, $tday, $tmrw
                );
                $this->assertJsonStringEqualsJsonString($json, json_encode($this->table->find()));
        }
@@ -157,4 +159,14 @@ class RowsetTest extends \PHPUnit_Framework_TestCase {
                $this->assertSame(array(), $rowset3->getRows());
                $this->assertCount(1, $rowset->filter(function($row) { return $row->id->get() == 1; }));
        }
+       
+       public function testApplyAppend() {
+               $rowset1 = $this->table->find(null, null, 1);
+               $rowset2 = $this->table->find(null, null, 1, 1);
+               $this->assertCount(1, $rowset1);
+               $this->assertCount(1, $rowset2);
+               $rowset2->apply(array($rowset1, "append"));
+               $this->assertCount(1, $rowset2);
+               $this->assertCount(2, $rowset1);
+       }
 }