X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fpq-gateway;a=blobdiff_plain;f=tests%2Fsetup.inc;h=bdee9d3ac2da135ab436f61e7644b14ac4df6296;hp=ee9733c12bb975238d16c5044f0754498a8b471e;hb=HEAD;hpb=0e2eb1f13ef60ce9a8709354136c42f7d87b2345 diff --git a/tests/setup.inc b/tests/setup.inc index ee9733c..bdee9d3 100644 --- a/tests/setup.inc +++ b/tests/setup.inc @@ -1,44 +1,83 @@ getConnection(); + $exec->setConnection(new pq\Connection(PQ_TEST_DSN)); + $exec->execute(new \pq\Query\Writer($sql, $params), function(){}); + $exec->setConnection($conn); +} + +class QueryLogger implements \SplObserver +{ + protected $fp; + + function __construct($logfile = null) { + if (!isset($logfile)) { + $logfile = __DIR__."/query.log"; + } + if (!$this->fp = @fopen($logfile, "a")) { + throw new \RuntimeException(error_get_last()["message"]); + } + } + + function __destruct() { + if (is_resource($this->fp)) { + fclose($this->fp); + } + } + + function update(\SplSubject $executor) { + $result = $executor->getResult(); + if (isset($result)) { + fprintf($this->fp, "[%s] R %s\n", + date_create()->format("Y-m-d H:i:s"), + json_encode($result)); + } elseif (($query = $executor->getQuery())) { + fprintf($this->fp, "[%s] Q %s %% %s\n", + date_create()->format("Y-m-d H:i:s"), + preg_replace("/\s+/", " ", $query), + json_encode($query->getParams())); + } + } +}