/** * @dataProvider getConnectors * * @param array $config */ public function testInsert(array $config) { Coroutine\create(function () use($config) { $factory = new ManagerFactory(); $database = $factory->create($config); $time = time(); (yield $database->table("test")->insert(["text" => $time])); $row = (yield $database->table("test")->select()->where("text = ?", $time)->first()); $this->assertEqualsAfterDelay(0.5, $row["text"], $time); })->done(); Loop\run(); }
<?php require __DIR__ . "/../vendor/autoload.php"; use AsyncPHP\Icicle\Database\ManagerFactory; use Icicle\Http\Message\RequestInterface; use Icicle\Http\Message\Response; use Icicle\Http\Server\Server; use Icicle\Loop; use Icicle\Socket\SocketInterface; use Icicle\Stream\MemorySink; $factory = new ManagerFactory(); $manager = $factory->create(require __DIR__ . "/config.php"); $server = new Server(function (RequestInterface $request, SocketInterface $socket) use($manager) { try { (yield $manager->table("test")->delete()); for ($i = 0; $i < 5; $i++) { (yield $manager->table("test")->insert(["text" => "foo"])); } $result = (yield $manager->table("test")->select()->get()); } catch (Exception $e) { die($e->getMessage()); } $sink = new MemorySink(); (yield $sink->end(count($result))); $response = new Response(200, ["Content-type" => "text/plain", "Content-length" => $sink->getLength()], $sink); (yield $response); }); $server->listen(8000); Loop\run();