Passed
Push — master ( bace86...bb4cad )
by Dmitriy
05:30 queued 02:57
created

tests/Unit/Collector/RequestCollectorTest.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Tests\Unit\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\Debug\Tests\Shared\AbstractCollectorTestCase;
14
use Yiisoft\Yii\Http\Event\AfterRequest;
15
use Yiisoft\Yii\Http\Event\BeforeRequest;
16
17
final class RequestCollectorTest extends AbstractCollectorTestCase
18
{
19
    /**
20
     * @param CollectorInterface|RequestCollector $collector
21
     */
22
    protected function collectTestData(CollectorInterface $collector): void
23
    {
24
        $requestMock = $this->createMock(ServerRequestInterface::class);
25
        $responseMock = $this->createMock(ResponseInterface::class);
26
        $uriMock = $this->createMock(UriInterface::class);
27
        $bodyMock = $this->createMock(StreamInterface::class);
28
        $bodyMock->method('tell')
29
            ->willReturn(1);
30
31
        $uriMock->method('getPath')
32
            ->willReturn('url');
33
        $uriMock->method('getQuery')
34
            ->willReturn('');
35
        $uriMock->method('__toString')
36
            ->willReturn('http://test.site/url');
37
38
        $requestMock->method('getMethod')
39
            ->willReturn('GET');
40
        $requestMock->method('getHeaders')
41
            ->willReturn([]);
42
        $requestMock->method('getHeaderLine')
43
            ->willReturn('');
44
        $requestMock->method('getUri')
45
            ->willReturn($uriMock);
46
        $requestMock->method('getBody')
47
            ->willReturn($bodyMock);
48
49
        $responseMock->method('getStatusCode')
50
            ->willReturn(200);
51
        $responseMock->method('getHeaders')
52
            ->willReturn([]);
53
        $responseMock->method('getBody')
54
            ->willReturn($bodyMock);
55
56
        $collector->collect(new BeforeRequest($requestMock));
0 ignored issues
show
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\Tests\...\Support\DummyCollector. 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

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