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

MemoryDriverTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 2
Bugs 0 Features 2
Metric Value
wmc 2
c 2
b 0
f 2
lcom 0
cbo 3
dl 0
loc 48
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testInsert() 0 32 1
A assertEqualsAfterDelay() 0 7 1
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