Passed
Push — main ( 9a98dd...0c4eff )
by Thierry
07:43
created

ServerContext::checkTheNumberOfDatabaseQueries()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
use Lagdo\DbAdmin\Driver\Sqlite\Tests\Driver;
4
5
use Behat\Behat\Context\Context;
6
use PHPUnit\Framework\Assert;
7
8
class ServerContext implements Context
9
{
10
    /**
11
     * @var Driver
12
     */
13
    protected $driver;
14
15
    /**
16
     * @var array
17
     */
18
    protected $databases;
19
20
    /**
21
     * @var int
22
     */
23
    protected $dbSize;
24
25
    /**
26
     * @var mixed
27
     */
28
    protected $dbResult;
29
30
    /**
31
     * The constructor
32
     */
33
    public function __construct()
34
    {
35
        $this->driver = new Driver();
36
    }
37
38
    /**
39
     * @Given The default server is connected
40
     */
41
    public function connectToTheDefaultServer()
42
    {
43
        $this->driver->createConnection();
44
    }
45
46
    /**
47
     * @Given The database :database is connected
48
     */
49
    public function connectToTheDatabase(string $database)
50
    {
51
        $this->driver->connect($database, '');
52
    }
53
54
    /**
55
     * @When I read the database list
56
     */
57
    public function getTheDatabaseList()
58
    {
59
        $this->databases = $this->driver->databases(true);
60
    }
61
62
    /**
63
     * @Then There is :count database on the server
64
     * @Then There are :count databases on the server
65
     */
66
    public function checkTheNumberOfDatabases(int $count)
67
    {
68
        Assert::assertEquals('', $this->driver->error());
69
        Assert::assertEquals($count, count($this->databases));
70
    }
71
72
    /**
73
     * @Then :count database query is executed
74
     * @Then :count database queries are executed
75
     */
76
    public function checkTheNumberOfDatabaseQueries(int $count)
77
    {
78
        Assert::assertEquals($count, count($this->driver->queries()));
79
    }
80
81
    /**
82
     * @Then The size of the database is :size
83
     */
84
    public function checkTheDatabaseSize(int $size)
85
    {
86
        Assert::assertEquals($size, $this->dbSize);
87
    }
88
89
    /**
90
     * @Then The operation has succeeded
91
     * @Then The result is true
92
     */
93
    public function checkThatTheOperationHasSucceeded()
94
    {
95
        Assert::assertTrue($this->dbResult === true);
96
    }
97
98
    /**
99
     * @Then The operation has failed
100
     * @Then The result is false
101
     */
102
    public function checkThatTheOperationHasFailed()
103
    {
104
        Assert::assertTrue($this->dbResult === false);
105
    }
106
107
    /**
108
     * @Then The result is an array with :count item
109
     * @Then The result is an array with :count items
110
     */
111
    public function checkThatTheResultIsAnArrayWithCount(int $count)
112
    {
113
        Assert::assertTrue(is_array($this->dbResult));
114
        Assert::assertTrue(count($this->dbResult) === $count);
115
    }
116
117
    /**
118
     * @Then The result is the string :value
119
     */
120
    public function checkThatTheResultIsAStringWithValue(string $value)
121
    {
122
        Assert::assertTrue(is_string($this->dbResult));
123
        Assert::assertEquals($value, $this->dbResult);
124
    }
125
126
    /**
127
     * @Given The next request returns :status
128
     */
129
    public function setTheNextDatabaseRequestStatus(bool $status)
130
    {
131
        $this->driver->connection()->setNextResultStatus($status);
132
    }
133
134
    /**
135
     * @When I read the database :database size
136
     */
137
    public function getTheDatabaseSize(string $database)
138
    {
139
        $this->dbSize = $this->driver->databaseSize($database);
140
    }
141
142
    /**
143
     * @When I create the database :database
144
     */
145
    public function createDatabase(string $database)
146
    {
147
        $this->dbResult = $this->driver->createDatabase($database, '');
148
    }
149
150
    /**
151
     * @When I open the database :database
152
     */
153
    public function openDatabase(string $database)
154
    {
155
        $this->driver->connect($database, '');
156
    }
157
158
    /**
159
     * @When I rename the database to :database
160
     */
161
    public function renameDatabase(string $database)
162
    {
163
        $this->dbResult = $this->driver->renameDatabase($database, '');
164
    }
165
166
    /**
167
     * @When I delete the database :database
168
     */
169
    public function deleteDatabase(string $database)
170
    {
171
        $this->dbResult = $this->driver->dropDatabase($database);
172
    }
173
174
    /**
175
     * @When I get the collation of the database
176
     */
177
    public function getTheCurrentDatabaseCollation()
178
    {
179
        $this->dbResult = $this->driver->databaseCollation('', []);
180
    }
181
}
182