PlaybackControllerRequestsTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 19
c 0
b 0
f 0
dl 0
loc 38
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testPreviousCommandIssuedWithNumericTimestamp() 0 8 1
A testPlayCommandIssued() 0 5 1
A testPreviousCommandIssued() 0 5 1
A testPauseCommandIssued() 0 5 1
A testNextCommandIssued() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MaxBeckers\AmazonAlexa\Test\Request;
6
7
use MaxBeckers\AmazonAlexa\Request\Request;
8
use MaxBeckers\AmazonAlexa\Request\Request\PlaybackController\NextCommandIssued;
9
use MaxBeckers\AmazonAlexa\Request\Request\PlaybackController\PauseCommandIssued;
10
use MaxBeckers\AmazonAlexa\Request\Request\PlaybackController\PlayCommandIssued;
11
use MaxBeckers\AmazonAlexa\Request\Request\PlaybackController\PreviousCommandIssued;
12
use PHPUnit\Framework\TestCase;
13
14
class PlaybackControllerRequestsTest extends TestCase
15
{
16
    public function testNextCommandIssued(): void
17
    {
18
        $requestBody = file_get_contents(__DIR__ . '/RequestData/playbackcontrollerNextCommandIssued.json');
19
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
20
        $this->assertInstanceOf(NextCommandIssued::class, $request->request);
21
    }
22
23
    public function testPauseCommandIssued(): void
24
    {
25
        $requestBody = file_get_contents(__DIR__ . '/RequestData/playbackcontrollerPauseCommandIssued.json');
26
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
27
        $this->assertInstanceOf(PauseCommandIssued::class, $request->request);
28
    }
29
30
    public function testPlayCommandIssued(): void
31
    {
32
        $requestBody = file_get_contents(__DIR__ . '/RequestData/playbackcontrollerPlayCommandIssued.json');
33
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
34
        $this->assertInstanceOf(PlayCommandIssued::class, $request->request);
35
    }
36
37
    public function testPreviousCommandIssued(): void
38
    {
39
        $requestBody = file_get_contents(__DIR__ . '/RequestData/playbackcontrollerPreviousCommandIssued.json');
40
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
41
        $this->assertInstanceOf(PreviousCommandIssued::class, $request->request);
42
    }
43
44
    public function testPreviousCommandIssuedWithNumericTimestamp(): void
45
    {
46
        $requestBody = file_get_contents(__DIR__ . '/RequestData/playbackcontrollerPreviousCommandIssued.json');
47
        $requestBody = json_decode($requestBody, true);
48
        $requestBody['request']['timestamp'] = 65545900;
49
        $requestBody = json_encode($requestBody);
50
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
51
        $this->assertInstanceOf(PreviousCommandIssued::class, $request->request);
52
    }
53
}
54