Completed
Push — master ( 0f71cc...99d0b0 )
by Karel
15:42
created

testCorrectAmountOfQueries()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 11

Duplication

Lines 21
Ratio 100 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 21
loc 21
rs 9.3142
cc 1
eloc 11
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of the FOSElasticaBundle package.
5
 *
6
 * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace FOS\ElasticaBundle\Tests\DataCollector;
13
14
use FOS\ElasticaBundle\DataCollector\ElasticaDataCollector;
15
use FOS\ElasticaBundle\Logger\ElasticaLogger;
16
use PHPUnit\Framework\TestCase;
17
use Symfony\Component\HttpFoundation\Request;
18
use Symfony\Component\HttpFoundation\Response;
19
20
/**
21
 * @author Richard Miller <[email protected]>
22
 */
23
class ElasticaDataCollectorTest extends TestCase
24
{
25 View Code Duplication
    public function testCorrectAmountOfQueries()
26
    {
27
        /** @var $requestMock \PHPUnit_Framework_MockObject_MockObject|Request */
28
        $requestMock = $this->createMock(Request::class);
29
30
        /** @var $responseMock \PHPUnit_Framework_MockObject_MockObject|Response */
31
        $responseMock = $this->createMock(Response::class);
32
33
        /** @var $loggerMock \PHPUnit_Framework_MockObject_MockObject|ElasticaLogger */
34
        $loggerMock = $this->createMock(ElasticaLogger::class);
35
36
        $totalQueries = rand();
37
38
        $loggerMock->expects($this->once())
39
            ->method('getNbQueries')
40
            ->will($this->returnValue($totalQueries));
41
42
        $elasticaDataCollector = new ElasticaDataCollector($loggerMock);
43
        $elasticaDataCollector->collect($requestMock, $responseMock);
44
        $this->assertSame($totalQueries, $elasticaDataCollector->getQueryCount());
45
    }
46
47 View Code Duplication
    public function testCorrectQueriesReturned()
48
    {
49
        /** @var $requestMock \PHPUnit_Framework_MockObject_MockObject|Request */
50
        $requestMock = $this->createMock(Request::class);
51
52
        /** @var $responseMock \PHPUnit_Framework_MockObject_MockObject|Response */
53
        $responseMock = $this->createMock(Response::class);
54
55
        /** @var $loggerMock \PHPUnit_Framework_MockObject_MockObject|ElasticaLogger */
56
        $loggerMock = $this->createMock(ElasticaLogger::class);
57
58
        $queries = ['testQueries'];
59
60
        $loggerMock->expects($this->once())
61
            ->method('getQueries')
62
            ->will($this->returnValue($queries));
63
64
        $elasticaDataCollector = new ElasticaDataCollector($loggerMock);
65
        $elasticaDataCollector->collect($requestMock, $responseMock);
66
        $this->assertSame($queries, $elasticaDataCollector->getQueries());
67
    }
68
69
    public function testCorrectQueriesTime()
70
    {
71
        /** @var $requestMock \PHPUnit_Framework_MockObject_MockObject|Request */
72
        $requestMock = $this->createMock(Request::class);
73
74
        /** @var $responseMock \PHPUnit_Framework_MockObject_MockObject|Response */
75
        $responseMock = $this->createMock(Response::class);
76
77
        /** @var $loggerMock \PHPUnit_Framework_MockObject_MockObject|ElasticaLogger */
78
        $loggerMock = $this->createMock(ElasticaLogger::class);
79
80
        $queries = [[
81
            'engineMS' => 15,
82
            'executionMS' => 10,
83
        ], [
84
            'engineMS' => 25,
85
            'executionMS' => 20,
86
        ]];
87
88
        $loggerMock->expects($this->once())
89
            ->method('getQueries')
90
            ->will($this->returnValue($queries));
91
92
        $elasticaDataCollector = new ElasticaDataCollector($loggerMock);
93
        $elasticaDataCollector->collect($requestMock, $responseMock);
94
        $this->assertSame(40, $elasticaDataCollector->getTime());
95
    }
96
97
    public function testName()
98
    {
99
        /** @var $loggerMock \PHPUnit_Framework_MockObject_MockObject|ElasticaLogger */
100
        $loggerMock = $this->createMock(ElasticaLogger::class);
101
102
        $elasticaDataCollector = new ElasticaDataCollector($loggerMock);
103
104
        $this->assertSame('elastica', $elasticaDataCollector->getName());
105
    }
106
}
107