UpdateControllerTest::testUpdateAction()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 33
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 33
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 23
nc 1
nop 0
1
<?php
2
3
namespace ScayTrase\Api\Cruds\Tests\Controller;
4
5
use ScayTrase\Api\Cruds\Tests\Fixtures\Common\Entity\MyEntity;
6
use ScayTrase\Api\Cruds\Tests\WebTestCase;
7
8
final class UpdateControllerTest extends WebTestCase
9
{
10
    public function testUpdateAction()
11
    {
12
        $client = self::createClient();
13
        $em     = $this->getEntityManager();
14
15
        $entity = new MyEntity('private-data');
16
        $entity->setPublicApiField('public-data');
17
        $em->persist($entity);
18
        $em->flush();
19
        $em->clear();
20
21
        $client->request(
22
            'POST',
23
            '/api/entity/my-entity/update',
24
            [
25
                'identifier' => $entity->getId(),
26
                'data'       => [
27
                    'public_api_field' => 'updated-data',
28
                    'parent'           => $entity->getId(),
29
                ],
30
            ],
31
            [],
32
            ['HTTP_CONTENT_TYPE' => 'application/json']
33
        );
34
        $response = $client->getResponse();
35
36
        self::assertTrue($response->isSuccessful());
37
        $em->clear();
38
        $entity = $em->getRepository(MyEntity::class)->find($entity->getId());
39
        self::assertSame('updated-data', $entity->getPublicApiField());
40
        self::assertSame($entity->getParent(), $entity);
41
        self::assertContains($entity, $entity->getChildren());
42
    }
43
}
44