Passed
Push — master ( 8dceab...2d1996 )
by Benjamin
15:07 queued 12:31
created

IgnoreErrorTransportWrapperTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 15
c 2
b 0
f 0
dl 0
loc 30
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testSend() 0 18 1
A buildTransport() 0 3 1
A buildMessage() 0 3 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Gelf\Test\Transport;
5
6
use Gelf\MessageInterface;
7
use Gelf\Transport\IgnoreErrorTransportWrapper;
8
use Gelf\Transport\TransportInterface;
9
use PHPUnit\Framework\MockObject\MockObject;
10
use PHPUnit\Framework\TestCase;
11
use RuntimeException;
12
13
class IgnoreErrorTransportWrapperTest extends TestCase
14
{
15
    public function testSend(): void
16
    {
17
        $expectedMessage   = $this->buildMessage();
18
        $expectedException = new RuntimeException();
19
20
        $transport = $this->buildTransport();
21
        $wrapper   = new IgnoreErrorTransportWrapper($transport);
22
23
        $transport->expects($this->once())
24
                  ->method('send')
25
                  ->with($expectedMessage)
26
                  ->willThrowException($expectedException);
27
28
        $bytes = $wrapper->send($expectedMessage);
29
        $lastError = $wrapper->getLastError();
30
31
        self::assertEquals(0, $bytes);
32
        self::assertSame($expectedException, $lastError);
33
    }
34
35
    private function buildTransport(): MockObject|TransportInterface
36
    {
37
        return $this->createMock(TransportInterface::class);
38
    }
39
40
    private function buildMessage(): MockObject|MessageInterface
41
    {
42
        return $this->createMock(MessageInterface::class);
43
    }
44
}
45