Passed
Push — master ( 4b2c1a...a53d55 )
by Maximilian
02:53
created

ResponseBodyTest::testJsonSerialize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 19
c 0
b 0
f 0
dl 0
loc 21
rs 9.6333
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MaxBeckers\AmazonAlexa\Test\Response;
6
7
use ArrayObject;
8
use MaxBeckers\AmazonAlexa\Response\Card;
9
use MaxBeckers\AmazonAlexa\Response\Directives\Display\RenderTemplateDirective;
10
use MaxBeckers\AmazonAlexa\Response\OutputSpeech;
11
use MaxBeckers\AmazonAlexa\Response\Reprompt;
12
use MaxBeckers\AmazonAlexa\Response\ResponseBody;
13
use PHPUnit\Framework\TestCase;
14
15
class ResponseBodyTest extends TestCase
16
{
17
    public function testJsonSerialize(): void
18
    {
19
        $rb = new ResponseBody();
20
        $this->assertEquals(new ArrayObject(), $rb->jsonSerialize());
21
        $rb->shouldEndSession = true;
22
        $this->assertEquals(new ArrayObject(['shouldEndSession' => true]), $rb->jsonSerialize());
23
        $card = new Card();
24
        $rb->card = $card;
25
        $os = new OutputSpeech();
26
        $rb->outputSpeech = $os;
27
        $directive = new RenderTemplateDirective();
28
        $rb->addDirective($directive);
29
        $reprompt = new Reprompt($rb->outputSpeech);
30
        $rb->reprompt = $reprompt;
31
        $this->assertEquals(new ArrayObject([
32
            'outputSpeech' => $os,
33
            'card' => $card,
34
            'reprompt' => $reprompt,
35
            'shouldEndSession' => true,
36
            'directives' => [$directive],
37
        ]), $rb->jsonSerialize());
38
    }
39
}
40