testBuildsAndDestructorsShouldBuildAndDestruct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 15
nc 2
nop 0
dl 0
loc 20
rs 9.7666
c 0
b 0
f 0
1
<?php
2
3
declare (strict_types=1);
4
5
namespace VM\Psr15Mocks\Tests;
6
7
use PHPUnit\Framework\TestCase;
8
use VM\Psr15Mocks\Middleware;
9
use Psr\Http\Message\UriInterface;
10
use Psr\Http\Message\StreamInterface;
11
use Psr\Http\Message\ResponseInterface;
12
use Psr\Http\Message\UploadedFileInterface;
13
use Psr\Http\Message\ServerRequestInterface;
14
use Psr\Http\Server\RequestHandlerInterface;
15
16
class MiddlewareTest extends TestCase
17
{
18
    use Middleware;
19
20
    public function testBuildsAndDestructorsShouldBuildAndDestruct(): void
21
    {
22
        $variants = [
23
            'response' => ResponseInterface::class,
24
            'request' => ServerRequestInterface::class,
25
            'uri' => UriInterface::class,
26
            'uploadedFile' => UploadedFileInterface::class,
27
            'requestHandler' => RequestHandlerInterface::class,
28
            'body' => StreamInterface::class,
29
        ];
30
31
        foreach ($variants as $variableName => $className) {
32
            $builderName = 'build' . ucfirst($variableName);
33
            $destructorName = 'destroy' . ucfirst($variableName);
34
35
            $this->assertSame(null, $this->$variableName);
36
            $this->$builderName();
37
            $this->assertInstanceOf($className, $this->$variableName);
38
            $this->$destructorName();
39
            $this->assertSame(null, $this->$variableName);
40
41
        }
42
    }
43
}
44