Completed
Push — master ( cea07d...f59d63 )
by Christopher
04:21 queued 01:08
created

MemoryDriverTest::testInsert()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 32
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

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