first test
[m6w6/pq-gateway] / tests / setup.inc
index bdee9d3ac2da135ab436f61e7644b14ac4df6296..3a639a5af0f8ca13c65c3450f665b11e3f4b2809 100644 (file)
@@ -1,5 +1,13 @@
 <?php
 
+use pq\Connection;
+use pq\Gateway\Table;
+use pq\Mapper\Map;
+use pq\Mapper\MapInterface;
+use pq\Mapper\Mapper;
+use pq\Query\ExecutorInterface;
+use pq\Query\Writer;
+
 ini_set("date.timezone", "UTC");
 ini_set("error_reporting", E_ALL);
 
@@ -41,14 +49,14 @@ SQL;
 
 require_once __DIR__ . "/../vendor/autoload.php";
 
-function executeInConcurrentTransaction(\pq\Query\ExecutorInterface $exec, $sql, array $params = null) {
+function executeInConcurrentTransaction(ExecutorInterface $exec, $sql, array $params = null) {
        $conn = $exec->getConnection();
-       $exec->setConnection(new pq\Connection(PQ_TEST_DSN));
-       $exec->execute(new \pq\Query\Writer($sql, $params), function(){});
+       $exec->setConnection(new Connection(PQ_TEST_DSN));
+       $exec->execute(new Writer($sql, $params), function(){});
        $exec->setConnection($conn);
 }
 
-class QueryLogger implements \SplObserver
+class QueryLogger implements SplObserver
 {
        protected $fp;
        
@@ -57,7 +65,7 @@ class QueryLogger implements \SplObserver
                        $logfile = __DIR__."/query.log";
                }
                if (!$this->fp = @fopen($logfile, "a")) {
-                       throw new \RuntimeException(error_get_last()["message"]);
+                       throw new RuntimeException(error_get_last()["message"]);
                }
        }
        
@@ -67,7 +75,7 @@ class QueryLogger implements \SplObserver
                }
        }
        
-       function update(\SplSubject $executor) {
+       function update(SplSubject $executor) {
                $result = $executor->getResult();
                if (isset($result)) {
                        fprintf($this->fp, "[%s] R %s\n", 
@@ -81,3 +89,29 @@ class QueryLogger implements \SplObserver
                }
        }
 }
+
+class TestModel implements JsonSerializable {
+       private $id, $created, $counter, $number, $data, $list, $prop;
+
+       function jsonSerialize() {
+               return get_object_vars($this);
+       }
+
+       /**
+        * @param Mapper $mapper
+        * @return MapInterface
+        */
+       static function mapAs(Mapper $mapper) {
+               return new Map(
+                       __CLASS__,
+                       new Table("test"),
+                       $mapper->mapField("id"),
+                       $mapper->mapField("created"),
+                       $mapper->mapField("counter"),
+                       $mapper->mapField("number"),
+                       $mapper->mapField("data"),
+                       $mapper->mapField("list"),
+                       $mapper->mapField("prop")
+               );
+       }
+}