Completed
Pull Request — master (#14)
by Pavel
04:24
created

CommitTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 0
Metric Value
dl 0
loc 90
c 0
b 0
f 0
wmc 5
lcom 1
cbo 5
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testSimpleCommit() 0 12 1
B testChainCommitWithRelation() 0 24 1
B testChainUpdateWithRelation() 0 25 1
A testRemove() 0 17 1
A getClientNames() 0 4 1
1
<?php
2
3
namespace Bankiru\Api\Doctrine\Tests;
4
5
use Bankiru\Api\Doctrine\Test\Entity\TestEntity;
6
use Bankiru\Api\Doctrine\Test\Entity\TestReference;
7
8
class CommitTest extends AbstractEntityManagerTest
9
{
10
    public function testSimpleCommit()
11
    {
12
        $entity = new TestReference();
13
14
        $this->getClient('test-reference-client')->push($this->getResponseMock(true, 241));
15
16
        $this->getManager()->persist($entity);
17
        $this->getManager()->flush();
18
19
        self::assertNotNull($entity->getId());
20
        self::assertEquals(241, $entity->getId());
21
    }
22
23
    public function testChainCommitWithRelation()
24
    {
25
        $entity = new TestReference();
26
        $parent = new TestEntity();
27
        $entity->setOwner($parent);
28
29
        $this->getClient()->push($this->getResponseMock(true, 42));
30
31
        $this->getClient('test-reference-client')->push($this->getResponseMock(true, 241));
32
33
        $this->getManager()->persist($entity);
34
        $this->getManager()->persist($parent);
35
        $this->getManager()->flush();
36
37
        self::assertNotNull($parent->getId());
38
        self::assertEquals(42, $parent->getId());
39
40
        self::assertNotNull($entity->getId());
41
        self::assertEquals(241, $entity->getId());
42
43
        self::assertEquals($entity->getOwner(), $parent);
44
45
        return $entity;
46
    }
47
48
    public function testChainUpdateWithRelation()
49
    {
50
        $entity = $this->testChainCommitWithRelation();
51
52
        $oldParent = $entity->getOwner();
53
        $newParent = new TestEntity();
54
        $this->getClient()->push($this->getResponseMock(true, 17));
55
        $this->getClient('test-reference-client')->push($this->getResponseMock(true, null));
56
57
        $entity->setOwner($newParent);
58
59
        $this->getManager()->persist($newParent);
60
        $this->getManager()->flush();
61
62
        self::assertNotNull($newParent->getId());
63
        self::assertEquals(17, $newParent->getId());
64
65
        self::assertNotNull($entity->getId());
66
        self::assertEquals(241, $entity->getId());
67
68
        self::assertEquals($entity->getOwner(), $newParent);
69
70
        self::assertNotSame($newParent, $oldParent);
71
        self::assertFalse($oldParent->getReferences()->contains($entity));
72
    }
73
74
    public function testRemove()
75
    {
76
        $entity = new TestReference();
77
78
        $this->getClient('test-reference-client')->push($this->getResponseMock(true, 241));
79
80
        $this->getManager()->persist($entity);
81
        $this->getManager()->flush();
82
83
        self::assertNotNull($entity->getId());
84
        self::assertEquals(241, $entity->getId());
85
86
        $this->getClient('test-reference-client')->push($this->getResponseMock(true, null));
87
88
        $this->getManager()->remove($entity);
89
        $this->getManager()->flush();
90
    }
91
92
93
    protected function getClientNames()
94
    {
95
        return array_merge(parent::getClientNames(), ['test-reference-client']);
96
    }
97
}
98