properlyCreatesExceptionFromUrl()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 11
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 14
rs 9.9
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ShlinkioTest\Shlink\Core\Exception;
6
7
use Exception;
8
use Fig\Http\Message\StatusCodeInterface;
9
use PHPUnit\Framework\TestCase;
10
use Shlinkio\Shlink\Core\Exception\InvalidUrlException;
11
use Throwable;
12
13
use function sprintf;
14
15
class InvalidUrlExceptionTest extends TestCase
16
{
17
    /**
18
     * @test
19
     * @dataProvider providePrevious
20
     */
21
    public function properlyCreatesExceptionFromUrl(?Throwable $prev): void
22
    {
23
        $url = 'http://the_url.com';
24
        $expectedMessage = sprintf('Provided URL %s is invalid. Try with a different one.', $url);
25
        $e = InvalidUrlException::fromUrl($url, $prev);
26
27
        self::assertEquals($expectedMessage, $e->getMessage());
28
        self::assertEquals($expectedMessage, $e->getDetail());
29
        self::assertEquals('Invalid URL', $e->getTitle());
30
        self::assertEquals('INVALID_URL', $e->getType());
31
        self::assertEquals(['url' => $url], $e->getAdditionalData());
32
        self::assertEquals(StatusCodeInterface::STATUS_BAD_REQUEST, $e->getCode());
33
        self::assertEquals(StatusCodeInterface::STATUS_BAD_REQUEST, $e->getStatus());
34
        self::assertEquals($prev, $e->getPrevious());
35
    }
36
37
    public function providePrevious(): iterable
38
    {
39
        yield 'null previous' => [null];
40
        yield 'instance previous' => [new Exception('Previous error', 10)];
41
    }
42
}
43