Completed
Push — master ( d819e3...4fe283 )
by Christopher
03:01 queued 12s
created

ManagerFactoryTest::testInsert()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 32
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 32
rs 8.8571
cc 1
eloc 22
nc 1
nop 0
1
<?php
2
3
namespace AsyncPHP\Icicle\Cache\Test\Driver;
4
5
use AsyncPHP\Icicle\Database\ManagerFactory;
6
use Icicle\Coroutine;
7
use Icicle\Loop;
8
use PHPUnit_Framework_TestCase;
9
10
class ManagerFactoryTest extends PHPUnit_Framework_TestCase
11
{
12
    public function testInsert()
13
    {
14
        Coroutine\create(function () {
15
            $factory = new ManagerFactory();
16
17
            $manager = $factory->create([
18
                "driver" => "mysql",
19
                "username" => "root",
20
                "password" => "",
21
                "database" => "icicle",
22
            ]);
23
24
            $time = time();
25
26
            yield
27
                $manager
28
                    ->table("test")
29
                    ->insert(["text" => $time]);
30
31
            $row = (yield
32
                $manager
33
                    ->table("test")
34
                    ->select()
35
                    ->where("text = ?", $time)
36
                    ->first()
37
            );
38
39
            $this->assertEqualsAfterDelay(0.5, $row["text"], $time);
40
        })->done();
41
42
        Loop\run();
43
    }
44
45
    /**
46
     * @param float $delay
47
     * @param mixed $expected
48
     * @param mixed $actual
49
     */
50
    private function assertEqualsAfterDelay($delay, $expected, $actual)
51
    {
52
        Loop\timer($delay, function () use ($expected, $actual) {
53
            $this->assertEquals($expected, $actual);
54
            Loop\stop();
55
        });
56
    }
57
}
58