Completed
Push — master ( c64d25...ac7c6c )
by Christopher
19:43 queued 17:08
created

ManagerFactoryTest::assertEqualsAfterDelay()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
rs 9.4286
cc 1
eloc 4
nc 1
nop 3
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
                "remit" => [
23
                    "driver" => "zeromq",
24
                    "server" => [
25
                        "port" => 5555,
26
                    ],
27
                    "client" => [
28
                        "port" => 5556,
29
                    ],
30
                ],
31
            ]);
32
33
            $time = time();
34
35
            yield
36
            $manager
37
                ->table("test")
38
                ->insert(["text" => $time]);
39
40
            $row = (yield
41
            $manager
42
                ->table("test")
43
                ->select()
44
                ->where("text = ?", $time)
45
                ->first()
46
            );
47
48
            $this->assertEqualsAfterDelay(0.5, $row["text"], $time);
49
        })->done();
50
51
        Loop\run();
52
    }
53
54
    /**
55
     * @param float $delay
56
     * @param mixed $expected
57
     * @param mixed $actual
58
     */
59
    private function assertEqualsAfterDelay($delay, $expected, $actual)
60
    {
61
        Loop\timer($delay, function () use ($expected, $actual) {
62
            $this->assertEquals($expected, $actual);
63
            Loop\stop();
64
        });
65
    }
66
}
67