handles[] = $handle = new \pq\Connection($connectionString); $handle->nonblocking = true; $handle->unbuffered = true; } $connector = $this->createMock(Connector::class); $connector->method('connect') ->will($this->returnCallback(function (): Promise { static $count = 0; if (!isset($this->handles[$count])) { $this->fail("createConnection called too many times"); } $handle = $this->handles[$count]; ++$count; return new Success(new PqConnection($handle)); })); $pool = new Pool(new ConnectionConfig('localhost'), \count($this->handles), Pool::DEFAULT_IDLE_TIMEOUT, true, $connector); $handle = \reset($this->handles); $handle->exec("DROP TABLE IF EXISTS test"); $result = $handle->exec("CREATE TABLE test (domain VARCHAR(63), tld VARCHAR(63), PRIMARY KEY (domain, tld))"); if (!$result) { $this->fail('Could not create test table.'); } foreach ($this->getData() as $row) { $result = $handle->execParams("INSERT INTO test VALUES (\$1, \$2)", $row); if (!$result) { $this->fail('Could not insert test data.'); } } return $pool; } public function tearDown(): void { $this->handles[0]->exec("ROLLBACK"); $this->handles[0]->exec("DROP TABLE test"); } }