Passed
Pull Request — master (#156)
by Wilmer
02:29
created

RequestCollectorTest::checkCollectedData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 5
rs 10
c 0
b 0
f 0
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\RequestCollector;
13
use Yiisoft\Yii\Http\Event\AfterRequest;
14
use Yiisoft\Yii\Http\Event\BeforeRequest;
15
16
final class RequestCollectorTest extends CollectorTestCase
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
28
        $uriMock->method('getPath')
29
            ->willReturn('url');
30
        $uriMock->method('getQuery')
31
            ->willReturn('');
32
        $uriMock->method('__toString')
33
            ->willReturn('http://test.site/url');
34
35
        $requestMock->method('getMethod')
36
            ->willReturn('GET');
37
        $requestMock->method('getHeaderLine')
38
            ->willReturn('');
39
        $requestMock->method('getUri')
40
            ->willReturn($uriMock);
41
42
        $responseMock->method('getStatusCode')
43
            ->willReturn(200);
44
        $responseMock->method('getBody')
45
            ->willReturn($bodyMock);
46
47
        $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\Collector\QueueCollector. 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

47
        $collector->/** @scrutinizer ignore-call */ 
48
                    collect(new BeforeRequest($requestMock));
Loading history...
48
        $collector->collect(new AfterRequest($responseMock));
49
    }
50
51
    protected function getCollector(): CollectorInterface
52
    {
53
        return new RequestCollector();
54
    }
55
56
    protected function checkCollectedData(CollectorInterface $collector): void
57
    {
58
        parent::checkCollectedData($collector);
59
        $this->assertInstanceOf(ServerRequestInterface::class, $collector->getCollected()['request']);
60
        $this->assertInstanceOf(ResponseInterface::class, $collector->getCollected()['response']);
61
    }
62
63
    protected function checkIndexData(CollectorInterface $collector): void
64
    {
65
        parent::checkIndexData($collector);
66
        if ($collector instanceof RequestCollector) {
67
            $data = $collector->getIndexData();
68
69
            $this->assertEquals('http://test.site/url', $data['request']['url']);
70
            $this->assertEquals('GET', $data['request']['method']);
71
            $this->assertEquals(200, $data['response']['statusCode']);
72
        }
73
    }
74
}
75