for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace AsyncPHP\Icicle\Cache\Test\Driver;
use AsyncPHP\Icicle\Database\ManagerFactory;
use Icicle\Coroutine;
use Icicle\Loop;
use PHPUnit_Framework_TestCase;
class ManagerFactoryTest extends PHPUnit_Framework_TestCase
{
public function testInsert()
Coroutine\create(function () {
$factory = new ManagerFactory();
$manager = $factory->create([
"driver" => "mysql",
"username" => "root",
"password" => "",
"database" => "icicle",
]);
$time = time();
yield
$manager
->table("test")
->insert(["text" => $time]);
$row = (yield
->select()
->where("text = ?", $time)
->first()
);
$this->assertEqualsAfterDelay(0.5, $row["text"], $time);
})->done();
Loop\run();
}
/**
* @param float $delay
* @param mixed $expected
* @param mixed $actual
*/
private function assertEqualsAfterDelay($delay, $expected, $actual)
Loop\timer($delay, function () use ($expected, $actual) {
$this->assertEquals($expected, $actual);
Loop\stop();
});