Passed
Push — master ( f7ef7a...65c26d )
by Dmitriy
02:46
created

RequestCollectorTest::checkSummaryData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
c 0
b 0
f 0
dl 0
loc 6
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Tests\Collector;
6
7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Psr\Http\Message\StreamInterface;
10
use Psr\Http\Message\UriInterface;
11
use Yiisoft\Yii\Debug\Collector\CollectorInterface;
12
use Yiisoft\Yii\Debug\Collector\Web\RequestCollector;
13
use Yiisoft\Yii\Http\Event\AfterRequest;
14
use Yiisoft\Yii\Http\Event\BeforeRequest;
15
16
final class RequestCollectorTest extends AbstractCollectorTestCase
17
{
18
    /**
19
     * @param CollectorInterface|RequestCollector $collector
20
     */
21
    protected function collectTestData(CollectorInterface $collector): void
22
    {
23
        $requestMock = $this->createMock(ServerRequestInterface::class);
24
        $responseMock = $this->createMock(ResponseInterface::class);
25
        $uriMock = $this->createMock(UriInterface::class);
26
        $bodyMock = $this->createMock(StreamInterface::class);
27
        $bodyMock->method('tell')
28
            ->willReturn(1);
29
30
        $uriMock->method('getPath')
31
            ->willReturn('url');
32
        $uriMock->method('getQuery')
33
            ->willReturn('');
34
        $uriMock->method('__toString')
35
            ->willReturn('http://test.site/url');
36
37
        $requestMock->method('getMethod')
38
            ->willReturn('GET');
39
        $requestMock->method('getHeaders')
40
            ->willReturn([]);
41
        $requestMock->method('getHeaderLine')
42
            ->willReturn('');
43
        $requestMock->method('getUri')
44
            ->willReturn($uriMock);
45
        $requestMock->method('getBody')
46
            ->willReturn($bodyMock);
47
48
        $responseMock->method('getStatusCode')
49
            ->willReturn(200);
50
        $responseMock->method('getHeaders')
51
            ->willReturn([]);
52
        $responseMock->method('getBody')
53
            ->willReturn($bodyMock);
54
55
        $collector->collect(new BeforeRequest($requestMock));
0 ignored issues
show
Bug introduced by
The method collect() does not exist on Yiisoft\Yii\Debug\Collector\CollectorInterface. It seems like you code against a sub-type of said class. However, the method does not exist in Yiisoft\Yii\Debug\Collec...mmaryCollectorInterface or Yiisoft\Yii\Debug\Collector\Queue\QueueCollector or Yiisoft\Yii\Debug\Collec...abase\DatabaseCollector. Are you sure you never get one of those? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

55
        $collector->/** @scrutinizer ignore-call */ 
56
                    collect(new BeforeRequest($requestMock));
Loading history...
56
        $collector->collect(new AfterRequest($responseMock));
57
    }
58
59
    protected function getCollector(): CollectorInterface
60
    {
61
        return new RequestCollector();
62
    }
63
64
    protected function checkCollectedData(array $data): void
65
    {
66
        parent::checkCollectedData($data);
67
        $this->assertInstanceOf(ServerRequestInterface::class, $data['request']);
68
        $this->assertInstanceOf(ResponseInterface::class, $data['response']);
69
    }
70
71
    protected function checkSummaryData(array $data): void
72
    {
73
        parent::checkSummaryData($data);
74
        $this->assertEquals('http://test.site/url', $data['request']['url']);
75
        $this->assertEquals('GET', $data['request']['method']);
76
        $this->assertEquals(200, $data['response']['statusCode']);
77
    }
78
}
79