Completed
Push — 1.8 ( 110b8e...31bb9f )
by
unknown
90:40 queued 42:52
created

testGetExistingSyncJobsCount()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 7
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 7
loc 7
rs 9.4286
c 1
b 0
f 0
cc 2
eloc 4
nc 2
nop 3
1
<?php
2
3
namespace Oro\Bundle\IntegrationBundle\Tests\Functional\Entity\Repository;
4
5
use Oro\Bundle\IntegrationBundle\Entity\Repository\ChannelRepository;
6
use Oro\Bundle\IntegrationBundle\Entity\Status;
7
8
use Oro\Bundle\TestFrameworkBundle\Test\WebTestCase;
9
10
/**
11
 * @dbIsolation
12
 */
13
class ChannelRepositoryTest extends WebTestCase
14
{
15
    /**
16
     * @var ChannelRepository
17
     */
18
    protected $repository;
19
20 View Code Duplication
    protected function setUp()
21
    {
22
        $this->initClient();
23
        $this->loadFixtures(
24
            [
25
                'Oro\Bundle\IntegrationBundle\Tests\Functional\DataFixtures\LoadStatusData',
26
                'Oro\Bundle\IntegrationBundle\Tests\Functional\DataFixtures\LoadJobData'
27
            ]
28
        );
29
        $this->repository = $this->getContainer()->get('doctrine')->getRepository('OroIntegrationBundle:Channel');
30
    }
31
32
    public function testRepositoryIsRegistered()
33
    {
34
        $this->assertInstanceOf('Oro\Bundle\IntegrationBundle\Entity\Repository\ChannelRepository', $this->repository);
35
    }
36
37
    public function testGetLastStatusForConnectorWorks()
38
    {
39
        $fooIntegration = $this->getReference('oro_integration:foo_integration');
40
41
        $this->assertSame(
42
            $this->getReference('oro_integration:foo_first_connector_second_status_completed'),
43
            $this->repository->getLastStatusForConnector($fooIntegration, 'first_connector', Status::STATUS_COMPLETED)
44
        );
45
46
        $this->assertSame(
47
            $this->getReference('oro_integration:foo_first_connector_third_status_failed'),
48
            $this->repository->getLastStatusForConnector($fooIntegration, 'first_connector', Status::STATUS_FAILED)
49
        );
50
51
        $barIntegration = $this->getReference('oro_integration:bar_integration');
52
53
        $this->assertSame(
54
            $this->getReference('oro_integration:bar_first_connector_first_status_completed'),
55
            $this->repository->getLastStatusForConnector($barIntegration, 'first_connector', Status::STATUS_COMPLETED)
56
        );
57
    }
58
59
    /**
60
     * @dataProvider getRunningSyncJobsCountDataProvider
61
     *
62
     * @param string        $command
63
     * @param int           $expectedCount
64
     * @param null|string   $integration
65
     */
66 View Code Duplication
    public function testGetRunningSyncJobsCount($command, $expectedCount, $integration = null)
67
    {
68
        $integration = $integration ? $this->getReference($integration)->getId() : null;
69
        $actual = $this->repository->getRunningSyncJobsCount($command, $integration);
70
71
        $this->assertEquals($expectedCount, $actual);
72
    }
73
74 View Code Duplication
    public function getRunningSyncJobsCountDataProvider()
75
    {
76
        return [
77
            [
78
                'command' => 'first_test_command',
79
                'expectedCount' => 2
80
            ],
81
            [
82
                'command' => 'second_test_command',
83
                'expectedCount' => 1
84
            ],
85
            [
86
                'command' => 'third_test_command',
87
                'expectedCount' => 2,
88
                'integration' => 'oro_integration:foo_integration',
89
            ]
90
        ];
91
    }
92
93
    /**
94
     * @dataProvider getExistingSyncJobsCountDataProvider
95
     *
96
     * @param string      $command
97
     * @param int         $expectedCount
98
     * @param null|string $integration
99
     */
100 View Code Duplication
    public function testGetExistingSyncJobsCount($command, $expectedCount, $integration = null)
101
    {
102
        $integration = $integration ? $this->getReference($integration)->getId() : null;
103
        $actual      = $this->repository->getExistingSyncJobsCount($command, $integration);
104
105
        self::assertEquals($expectedCount, $actual);
106
    }
107
108 View Code Duplication
    public function getExistingSyncJobsCountDataProvider()
109
    {
110
        return [
111
            [
112
                'command'       => 'first_test_command',
113
                'expectedCount' => 3
114
            ],
115
            [
116
                'command'       => 'second_test_command',
117
                'expectedCount' => 4
118
            ],
119
            [
120
                'command'       => 'third_test_command',
121
                'expectedCount' => 3,
122
                'integration'   => 'oro_integration:foo_integration',
123
            ]
124
        ];
125
    }
126
}
127