Passed
Push — main ( 101f2d...06b8a6 )
by Emil
25:10
created

ProjectControllerTest   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 288
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 61
c 1
b 0
f 0
dl 0
loc 288
rs 10
wmc 11

11 Methods

Rating   Name   Duplication   Size   Complexity  
A testProjBlackJackStay() 0 11 1
A testProjBlackJackDoubleDown() 0 11 1
A testProjBlackJackNewGame() 0 11 1
A testProjPlayerInit() 0 22 1
A testProjBlackJackInit() 0 18 1
A testProjBlackJackBet() 0 11 1
A testProjDoc() 0 22 1
A testProjBlackJack() 0 23 1
A testProjBlackJackHit() 0 11 1
A testProjStart() 0 22 1
A testProjBlackJackGame() 0 13 1
1
<?php
2
3
namespace App\Tests\Controller;
4
5
use App\Game\BlackJack;
6
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
7
use Symfony\Bundle\FrameworkBundle\KernelBrowser;
8
use Symfony\Component\Routing\RouterInterface;
9
10
class ProjectControllerTest extends WebTestCase
11
{
12
    /**
13
     * testProjBlackJackInit
14
     *
15
     * Test proj_BlackJack_init route
16
     *
17
     * @param  KernelBrowser $client
18
     * @param  RouterInterface $router
19
     * @return void
20
     */
21
    private function testProjBlackJackInit(KernelBrowser $client, RouterInterface $router): void
22
    {
23
        // Generate URL from route name
24
        $url = $router->generate('proj_BlackJack_init');
25
26
        $postData = [
27
            'numOfPlayers' => 2,
28
            'Player 1' => 'Alice',
29
            'Player 2' => 'Bob',
30
            'Player 3' => 'Erik',
31
        ];
32
33
        // Send POST request to the route
34
        $client->request('POST', $url, $postData);
35
36
        // Assert that response is a redirect (302 status)
37
        $response = $client->getResponse();
38
        $this->assertTrue($response->isRedirect());
39
    }
40
41
    /**
42
     * testProjBlackJackGame
43
     *
44
     * Test proj_BlackJack_game route
45
     *
46
     * @param  KernelBrowser $client
47
     * @param  RouterInterface $router
48
     * @return void
49
     */
50
    private function testProjBlackJackGame(KernelBrowser $client, RouterInterface $router): void
51
    {
52
        // Generate URL
53
        $url = $router->generate('proj_BlackJack_game');
54
55
        // Make the request
56
        $crawler = $client->request('GET', $url);
57
58
        // Assert status code
59
        $this->assertEquals(200, $client->getResponse()->getStatusCode());
60
61
        // Assert content
62
        $this->assertStringContainsString('Project Black Jack: Game', $crawler->filter('title')->text());
63
    }
64
65
    /**
66
     * testProjBlackJackBet
67
     *
68
     * Test proj_BlackJack_Bet route
69
     *
70
     * @param  KernelBrowser $client
71
     * @param  RouterInterface $router
72
     * @return void
73
     */
74
    private function testProjBlackJackBet(KernelBrowser $client, RouterInterface $router): void
75
    {
76
        // Generate URL from route name
77
        $url = $router->generate('proj_BlackJack_Bet');
78
79
        // Send POST request to the route
80
        $client->request('POST', $url);
81
82
        // Assert that response is a redirect (302 status)
83
        $response = $client->getResponse();
84
        $this->assertTrue($response->isRedirect());
85
    }
86
87
    /**
88
     * testProjBlackJackDoubleDown
89
     *
90
     * Test proj_BlackJack_DoubleDown route
91
     *
92
     * @param  KernelBrowser $client
93
     * @param  RouterInterface $router
94
     * @return void
95
     */
96
    private function testProjBlackJackDoubleDown(KernelBrowser $client, RouterInterface $router): void
97
    {
98
        // Generate URL from route name
99
        $url = $router->generate('proj_BlackJack_DoubleDown');
100
101
        // Send POST request to the route
102
        $client->request('POST', $url);
103
104
        // Assert that response is a redirect (302 status)
105
        $response = $client->getResponse();
106
        $this->assertTrue($response->isRedirect());
107
    }
108
109
    /**
110
     * testProjBlackJackHit
111
     *
112
     * Test proj_BlackJack_Hit route
113
     *
114
     * @param  KernelBrowser $client
115
     * @param  RouterInterface $router
116
     * @return void
117
     */
118
    private function testProjBlackJackHit(KernelBrowser $client, RouterInterface $router): void
119
    {
120
        // Generate URL from route name
121
        $url = $router->generate('proj_BlackJack_Hit');
122
123
        // Send POST request to the route
124
        $client->request('POST', $url);
125
126
        // Assert that response is a redirect (302 status)
127
        $response = $client->getResponse();
128
        $this->assertTrue($response->isRedirect());
129
    }
130
131
    /**
132
     * testProjBlackJackStay
133
     *
134
     * Test proj_BlackJack_Stay route
135
     *
136
     * @param  KernelBrowser $client
137
     * @param  RouterInterface $router
138
     * @return void
139
     */
140
    private function testProjBlackJackStay(KernelBrowser $client, RouterInterface $router): void
141
    {
142
        // Generate URL from route name
143
        $url = $router->generate('proj_BlackJack_Stay');
144
145
        // Send POST request to the route
146
        $client->request('POST', $url);
147
148
        // Assert that response is a redirect (302 status)
149
        $response = $client->getResponse();
150
        $this->assertTrue($response->isRedirect());
151
    }
152
153
    /**
154
     * testProjBlackJackNewGame
155
     *
156
     * Test proj_BlackJack_NewGame route
157
     *
158
     * @param  KernelBrowser $client
159
     * @param  RouterInterface $router
160
     * @return void
161
     */
162
    private function testProjBlackJackNewGame(KernelBrowser $client, RouterInterface $router): void
163
    {
164
        // Generate URL from route name
165
        $url = $router->generate('proj_BlackJack_NewGame');
166
167
        // Send POST request to the route
168
        $client->request('POST', $url);
169
170
        // Assert that response is a redirect (302 status)
171
        $response = $client->getResponse();
172
        $this->assertTrue($response->isRedirect());
173
    }
174
175
    /**
176
     * testProjStart
177
     *
178
     * Test proj_start route
179
     *
180
     * @return void
181
     */
182
    public function testProjStart(): void
183
    {
184
        // Create a client to browse the application
185
        $client = static::createClient();
186
187
        // Retrieve router service
188
        /** @var RouterInterface $router */
189
        $router = static::getContainer()->get('router');
190
191
        //proj_start
192
193
        // Generate URL from route name
194
        $url = $router->generate('proj_start');
195
196
        // Send a GET request to the route
197
        $crawler = $client->request('GET', $url);
198
199
        // Assert the response status code
200
        $this->assertEquals(200, $client->getResponse()->getStatusCode());
201
202
        // Assert that certain content exists in the response
203
        $this->assertStringContainsString('Black Jack Project:', $crawler->filter('title')->text());
204
    }
205
206
    /**
207
     * testProjDoc
208
     *
209
     * Test proj_doc route
210
     *
211
     * @return void
212
     */
213
    public function testProjDoc(): void
214
    {
215
        // Create a client to browse the application
216
        $client = static::createClient();
217
218
        // Retrieve router service
219
        /** @var RouterInterface $router */
220
        $router = static::getContainer()->get('router');
221
222
        //proj_doc
223
224
        // Generate URL from route name
225
        $url = $router->generate('proj_doc');
226
227
        // Send a GET request to the route
228
        $crawler = $client->request('GET', $url);
229
230
        // Assert the response status code
231
        $this->assertEquals(200, $client->getResponse()->getStatusCode());
232
233
        // Assert that certain content exists in the response
234
        $this->assertStringContainsString('Project Black Jack: Doc', $crawler->filter('title')->text());
235
    }
236
237
    /**
238
     * testProjPlayerInit
239
     *
240
     * Test proj_player_init route
241
     *
242
     * @return void
243
     */
244
    public function testProjPlayerInit(): void
245
    {
246
        // Create a client to browse the application
247
        $client = static::createClient();
248
249
        // Retrieve router service
250
        /** @var RouterInterface $router */
251
        $router = static::getContainer()->get('router');
252
253
        //proj_player_init
254
255
        // Generate URL from route name
256
        $url = $router->generate('proj_player_init', ['num' => 1]);
257
258
        // Send a GET request to the route
259
        $crawler = $client->request('GET', $url);
260
261
        // Assert the response status code
262
        $this->assertEquals(200, $client->getResponse()->getStatusCode());
263
264
        // Assert that certain content exists in the response
265
        $this->assertStringContainsString('Black Jack Project: Player Creation', $crawler->filter('title')->text());
266
    }
267
268
    /**
269
     * testProjBlackJack
270
     *
271
     * Test the Black Jack game
272
     *
273
     * @return void
274
     */
275
    public function testProjBlackJack(): void
276
    {
277
        // Create a client to browse the application
278
        $client = static::createClient();
279
280
        // Retrieve router service
281
        /** @var RouterInterface $router */
282
        $router = static::getContainer()->get('router');
283
284
285
        $this->testProjBlackJackInit($client, $router);
286
287
        $this->testProjBlackJackGame($client, $router);
288
289
        $this->testProjBlackJackBet($client, $router);
290
291
        $this->testProjBlackJackDoubleDown($client, $router);
292
293
        $this->testProjBlackJackHit($client, $router);
294
295
        $this->testProjBlackJackStay($client, $router);
296
297
        $this->testProjBlackJackNewGame($client, $router);
298
    }
299
}
300