Test Setup Failed
Pull Request — master (#11)
by Derek Stephen
06:41
created

SymfonyToPsr15BridgeTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
dl 0
loc 33
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A hp$0 ➔ handle() 0 4 1
A hp$1 ➔ process() 0 7 1
A testHandle() 0 30 1
1
<?php
2
3
namespace TheCodingMachine\Tests\Psr15Bridge;
4
5
use PHPUnit\Framework\TestCase;
6
use Psr\Http\Message\ResponseInterface;
7
use Psr\Http\Message\ServerRequestInterface;
8
use Psr\Http\Server\MiddlewareInterface;
9
use Psr\Http\Server\RequestHandlerInterface;
10
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;
11
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
12
use Symfony\Component\HttpKernel\HttpKernelInterface;
13
use TheCodingMachine\Psr15Bridge\SymfonyToPsr15Bridge;
14
15
class SymfonyToPsr15BridgeTest extends TestCase
16
{
17
    public function testHandle()
18
    {
19
        // Symfony middleware that returns 'foo'
20
        $nextSymfonyMiddleware = new class implements HttpKernelInterface
21
         {
22
             public function handle(SymfonyRequest $request, $type = self::MASTER_REQUEST, $catch = true)
23
             {
24
                 return new SymfonyResponse('foo');
25
             }
26
         };
27
28
        // Psr15 middleware that appends 'bar' to the body
29
        $middlewareInterface = new class implements MiddlewareInterface
30
         {
31
             public function process(ServerRequestInterface $request, RequestHandlerInterface $delegate): ResponseInterface
32
             {
33
                 $response = $delegate->process($request, $delegate);
34
                 $response->getBody()->write('bar');
35
36
                 return $response;
37
             }
38
         };
39
40
        $bridge = new SymfonyToPsr15Bridge($nextSymfonyMiddleware, $middlewareInterface);
41
42
        $request = SymfonyRequest::create('/', 'GET');
43
        $response = $bridge->handle($request);
44
45
        $this->assertEquals('foobar', $response->getContent());
46
    }
47
}
48