testGetValideSansResultat()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 9
nc 1
nop 0
1
<?php
2
3
namespace Starkerxp\CampaignBundle\Tests\Controller;
4
5
use Starkerxp\StructureBundle\Test\WebTest;
6
7
class CampaignControllerTest extends WebTest
8
{
9
10
    /**
11
     * @group campaign
12
     * @group post
13
     * @group controller
14
     */
15
    public function testPostValide()
16
    {
17
        $this->loadFixtureFiles(
18
            [
19
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
20
            ]
21
        );
22
        $data = [
23
            'name' => "Ma première campaign",
24
        ];
25
        $client = $this->getAuthClient();
26
        $client->request('POST', '/api/campaigns', $data);
27
        $response = $client->getResponse();
28
        $this->assertEquals(201, $response->getStatusCode());
29
        $body = json_decode($response->getContent(), true);
30
        $this->assertEquals("La donnée a bien été créé.", $body['payload']);
31
        $this->assertArrayHasKey("token", $body);
32
        $manager = $this->getContainer()->get('starkerxp_campaign.manager.campaign');
33
        $campaigns = $manager->findAll();
34
        $this->assertCount(1, $campaigns);
35
    }
36
37
    /**
38
     * @group campaign
39
     * @group post
40
     * @group controller
41
     */
42
    public function testPostInvalide()
43
    {
44
        $this->loadFixtureFiles(
45
            [
46
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
47
48
            ]
49
        );
50
        $client = $this->getAuthClient();
51
        $client->request('POST', '/api/campaigns', []);
52
        $response = $client->getResponse();
53
        $this->assertEquals(400, $response->getStatusCode());
54
    }
55
56
57
    /**
58
     * @group campaign
59
     * @group put
60
     * @group controller
61
     */
62
    public function testPutValide()
63
    {
64
        $this->loadFixtureFiles(
65
            [
66
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
67
68
                '@StarkerxpCampaignBundle/Tests/DataFixtures/CampaignManager/DefaultCampaign.yml',
69
            ]
70
        );
71
        $manager = $this->getContainer()->get('starkerxp_campaign.manager.campaign');
72
        $listeCampaigns = $manager->getRepository()->findAll();
73
        $this->assertCount(1, $listeCampaigns);
74
        $campaignDepart = $manager->toArray($listeCampaigns[0], ['name']);// Exemple
75
        $data = [
76
            'name' => "Mon nom", //exemple
77
        ];
78
        $client = $this->getAuthClient();
79
        $client->request('PUT', '/api/campaigns/'.$listeCampaigns[0]->getId(), $data);
80
        $response = $client->getResponse();
81
        $this->assertEquals(204, $response->getStatusCode());
82
        $manager->clear();
83
        $campaigns = $manager->findAll();
84
        $this->assertCount(1, $campaigns);
85
        $campaignFinal = $manager->toArray($campaigns[0], ['name']);// Exemple
86
        $this->assertNotEquals($campaignDepart, $campaignFinal);
87
        $this->assertEquals($data, $campaignFinal);
88
    }
89
90
    /**
91
     * @group campaign
92
     * @group put
93
     * @group controller
94
     */
95 View Code Duplication
    public function testPutInvalide()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
96
    {
97
        $this->loadFixtureFiles(
98
            [
99
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
100
                '@StarkerxpCampaignBundle/Tests/DataFixtures/CampaignManager/DefaultCampaign.yml',
101
            ]
102
        );
103
        $manager = $this->getContainer()->get('starkerxp_campaign.manager.campaign');
104
        $listeCampaigns = $manager->getRepository()->findAll();
105
        $this->assertCount(1, $listeCampaigns);
106
        $client = $this->getAuthClient();
107
        $data = [
108
            'name' => "M",
109
        ];
110
        $client->request('PUT', '/api/campaigns/'.$listeCampaigns[0]->getId(), $data);
111
        $response = $client->getResponse();
112
        $this->assertEquals(400, $response->getStatusCode());
113
        $body = json_decode($response->getContent(), true)['payload'];
114
        $this->assertArrayHasKey("name", $body);
115
116
    }
117
118
    /**
119
     * @group campaign
120
     * @group put
121
     * @group controller
122
     */
123
    public function testPutSansResultat()
124
    {
125
        $this->loadFixtureFiles(
126
            [
127
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
128
129
            ]
130
        );
131
        $data = [
132
            'name' => "Mon nom", //exemple
133
        ];
134
        $client = $this->getAuthClient();
135
        $client->request('PUT', '/api/campaigns/404', $data);
136
        $response = $client->getResponse();
137
        $this->assertEquals(404, $response->getStatusCode());
138
        $payload = json_decode($response->getContent(), true)['payload'];
139
        $this->assertEquals("La donnée demandée n'existe pas.", $payload);
140
    }
141
142
143
    /**
144
     * @group campaign
145
     * @group cget
146
     * @group controller
147
     */
148
    public function testCGetValideAvecResultats()
149
    {
150
        $this->loadFixtureFiles(
151
            [
152
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
153
154
                '@StarkerxpCampaignBundle/Tests/DataFixtures/CampaignManager/CampaignManager.yml',
155
            ]
156
        );
157
        $client = $this->getAuthClient();
158
        $client->request('GET', '/api/campaigns', []);
159
        $response = $client->getResponse();
160
        $this->assertEquals(200, $response->getStatusCode());
161
        $body = json_decode($response->getContent(), true);
162
        $this->assertCount(10, $body);
163
        foreach ($body as $element) {
0 ignored issues
show
Unused Code introduced by
This foreach statement is empty and can be removed.

This check looks for foreach loops that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

Consider removing the loop.

Loading history...
164
            //$this->assertArrayHasKey("nom", $body); // Exemple
0 ignored issues
show
Unused Code Comprehensibility introduced by
73% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
165
        }
166
    }
167
168
    /**
169
     * @group campaign
170
     * @group cget
171
     * @group controller
172
     */
173
    public function testCGetValideSansResultat()
174
    {
175
        $this->loadFixtureFiles(
176
            [
177
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
178
179
            ]
180
        );
181
        $client = $this->getAuthClient();
182
        $client->request('GET', '/api/campaigns', []);
183
        $response = $client->getResponse();
184
        $this->assertEquals(200, $response->getStatusCode());
185
        $body = json_decode($response->getContent(), true);
186
        $this->assertCount(0, $body);
187
    }
188
189
    /**
190
     * @group campaign
191
     * @group cget
192
     * @group controller
193
     */
194
    public function testCGetInvalide()
195
    {
196
        $this->loadFixtureFiles(
197
            [
198
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
199
200
            ]
201
        );
202
        $client = $this->getAuthClient();
203
        $client->request('GET', '/api/campaigns', ["filter_erreur" => "+h"]);
204
        $response = $client->getResponse();
205
        $this->assertEquals(400, $response->getStatusCode());
206
    }
207
208
    /**
209
     * @group campaign
210
     * @group get
211
     * @group controller
212
     */
213
    public function testGetValideAvecResultats()
214
    {
215
        $this->loadFixtureFiles(
216
            [
217
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
218
219
                '@StarkerxpCampaignBundle/Tests/DataFixtures/CampaignManager/CampaignManager.yml',
220
            ]
221
        );
222
        $manager = $this->getContainer()->get('starkerxp_campaign.manager.campaign');
223
        $listeCampaigns = $manager->getRepository()->findAll();
224
        $this->assertCount(10, $listeCampaigns);
225
        $client = $this->getAuthClient();
226
        $client->request('GET', '/api/campaigns/'.$listeCampaigns[0]->getId(), []);
227
        $response = $client->getResponse();
228
        $this->assertEquals(200, $response->getStatusCode());
229
        $body = json_decode($response->getContent(), true);
230
        $this->assertCount(3, $body);
231
        $this->assertArrayHasKey("name", $body); // Exemple
232
        $this->assertArrayHasKey("status", $body); // Exemple
233
        $this->assertArrayHasKey("id", $body); // Exemple
234
    }
235
236
    /**
237
     * @group campaign
238
     * @group get
239
     * @group controller
240
     */
241
    public function testGetValideSansResultat()
242
    {
243
        $this->loadFixtureFiles(
244
            [
245
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
246
247
            ]
248
        );
249
        $client = $this->getAuthClient();
250
        $client->request('GET', '/api/campaigns/404', []);
251
        $response = $client->getResponse();
252
        $this->assertEquals(404, $response->getStatusCode());
253
        $body = json_decode($response->getContent(), true);
254
        $this->assertNotEmpty($body);
255
    }
256
257
    /**
258
     * @group campaign
259
     * @group get
260
     * @group controller
261
     */
262
    public function testGetInvalide()
263
    {
264
        $this->loadFixtureFiles(
265
            [
266
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
267
268
            ]
269
        );
270
        $client = $this->getAuthClient();
271
        $client->request('GET', '/api/campaigns/500', ["filter_erreur" => "+h"]);
272
        $response = $client->getResponse();
273
        $this->assertEquals(400, $response->getStatusCode());
274
    }
275
276
    /**
277
     * @group campaign
278
     * @group delete
279
     * @group controller
280
     */
281 View Code Duplication
    public function testDeleteValide()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
282
    {
283
        $this->loadFixtureFiles(
284
            [
285
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
286
287
                '@StarkerxpCampaignBundle/Tests/DataFixtures/CampaignManager/DefaultCampaign.yml',
288
            ]
289
        );
290
        $manager = $this->getContainer()->get('starkerxp_campaign.manager.campaign');
291
        $listeCampaigns = $manager->getRepository()->findAll();
292
        $this->assertCount(1, $listeCampaigns);
293
        $client = $this->getAuthClient();
294
        $client->request('DELETE', '/api/campaigns/'.$listeCampaigns[0]->getId());
295
        $response = $client->getResponse();
296
        $this->assertEquals(204, $response->getStatusCode());
297
        $manager->clear();
298
        $campaigns = $manager->findAll();
299
        $this->assertCount(0, $campaigns);
300
    }
301
302
    /**
303
     * @group campaign
304
     * @group delete
305
     * @group controller
306
     */
307
    public function testDeleteSansResultat()
308
    {
309
        $this->loadFixtureFiles(
310
            [
311
                '@StarkerxpUserBundle/Tests/DataFixtures/UserManager/DefaultUser.yml',
312
313
            ]
314
        );
315
        $client = $this->getAuthClient();
316
        $client->request('DELETE', '/api/campaigns/404', []);
317
        $response = $client->getResponse();
318
        $this->assertEquals(404, $response->getStatusCode());
319
        $body = json_decode($response->getContent(), true);
320
        $this->assertNotEmpty($body);
321
    }
322
}
0 ignored issues
show
Coding Style introduced by
As per coding style, files should not end with a newline character.

This check marks files that end in a newline character, i.e. an empy line.

Loading history...
323