Completed
Pull Request — master (#213)
by Alejandro
04:40
created

properlyReplacesTheOldPathByTheNewOne()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 19
rs 9.6333
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace ShlinkioTest\Shlink\Rest\Middleware\ShortUrl;
5
6
use PHPUnit\Framework\Assert;
7
use PHPUnit\Framework\TestCase;
8
use Prophecy\Argument;
9
use Psr\Http\Message\ServerRequestInterface;
10
use Psr\Http\Message\UriInterface;
11
use Psr\Http\Server\RequestHandlerInterface;
12
use Shlinkio\Shlink\Rest\Middleware\ShortUrl\ShortCodePathMiddleware;
13
use Zend\Diactoros\Response;
14
use Zend\Diactoros\Uri;
15
16
class ShortCodePathMiddlewareTest extends TestCase
17
{
18
    private $middleware;
19
    private $requestHandler;
20
21
    public function setUp()
22
    {
23
        $this->middleware = new ShortCodePathMiddleware();
24
        $this->requestHandler = $this->prophesize(RequestHandlerInterface::class);
25
        $this->requestHandler->handle(Argument::type(ServerRequestInterface::class))->willReturn(new Response());
26
    }
27
28
    /**
29
     * @test
30
     */
31
    public function properlyReplacesTheOldPathByTheNewOne()
32
    {
33
        $uri = new Uri('/short-codes/foo');
34
35
        $request = $this->prophesize(ServerRequestInterface::class);
36
        $request->getUri()->willReturn($uri);
37
        $withUri = $request->withUri(Argument::that(function (UriInterface $uri) {
38
            $path = $uri->getPath();
39
40
            Assert::assertContains('/short-urls', $path);
41
            Assert::assertNotContains('/short-codes', $path);
42
43
            return $uri;
44
        }))->willReturn($request->reveal());
45
46
        $this->middleware->process($request->reveal(), $this->requestHandler->reveal());
47
48
        $withUri->shouldHaveBeenCalledTimes(1);
49
    }
50
}
51