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

testSkillDisabledRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 6
rs 10
cc 1
nc 1
nop 0
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\AlexaSkillEvent\SkillAccountLinkedRequest;
9
use MaxBeckers\AmazonAlexa\Request\Request\AlexaSkillEvent\SkillDisabledBody;
10
use MaxBeckers\AmazonAlexa\Request\Request\AlexaSkillEvent\SkillDisabledRequest;
11
use MaxBeckers\AmazonAlexa\Request\Request\AlexaSkillEvent\SkillEnabledRequest;
12
use MaxBeckers\AmazonAlexa\Request\Request\AlexaSkillEvent\SkillPermissionAcceptedRequest;
13
use MaxBeckers\AmazonAlexa\Request\Request\AlexaSkillEvent\SkillPermissionChangedRequest;
14
use PHPUnit\Framework\TestCase;
15
16
class AlexaSkillEventRequestsTest extends TestCase
17
{
18
    public function testSkillAccountLinkedRequest(): void
19
    {
20
        $requestBody = file_get_contents(__DIR__ . '/RequestData/alexaskilleventAccountLinked.json');
21
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
22
        $this->assertInstanceOf(SkillAccountLinkedRequest::class, $request->request);
23
        $this->assertEquals('string', $request->request->body->accessToken);
24
    }
25
26
    public function testSkillEnabledRequest(): void
27
    {
28
        $requestBody = file_get_contents(__DIR__ . '/RequestData/alexaskilleventEnabled.json');
29
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
30
        $this->assertInstanceOf(SkillEnabledRequest::class, $request->request);
31
    }
32
33
    public function testSkillDisabledRequest(): void
34
    {
35
        $requestBody = file_get_contents(__DIR__ . '/RequestData/alexaskilleventDisabled.json');
36
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
37
        $this->assertInstanceOf(SkillDisabledRequest::class, $request->request);
38
        $this->assertEquals(SkillDisabledBody::PERSISTED, $request->request->body->userInformationPersistenceStatus);
39
    }
40
41
    public function testSkillPermissionAcceptedRequest(): void
42
    {
43
        $requestBody = file_get_contents(__DIR__ . '/RequestData/alexaskilleventPermissionAccepted.json');
44
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
45
        $this->assertInstanceOf(SkillPermissionAcceptedRequest::class, $request->request);
46
        $this->assertEquals('string', $request->request->body->acceptedPermissions[0]->scope);
47
    }
48
49
    public function testSkillPermissionChangedRequest(): void
50
    {
51
        $requestBody = file_get_contents(__DIR__ . '/RequestData/alexaskilleventPermissionChanged.json');
52
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
53
        $this->assertInstanceOf(SkillPermissionChangedRequest::class, $request->request);
54
        $this->assertEquals('string', $request->request->body->acceptedPermissions[0]->scope);
55
    }
56
57
    public function testPlaybackFinishedRequestWithNumericTimestamp(): void
58
    {
59
        $requestBody = json_decode(file_get_contents(__DIR__ . '/RequestData/alexaskilleventEnabled.json'), true);
60
        $requestBody['request']['timeStamp'] = 65545900;
61
        $requestBody['request']['eventCreationTime'] = 65545900;
62
        $requestBody['request']['eventPublishingTime'] = 65545900;
63
        $requestBody = json_encode($requestBody);
64
        $request = Request::fromAmazonRequest($requestBody, 'https://s3.amazonaws.com/echo.api/echo-api-cert.pem', 'signature');
65
        $this->assertInstanceOf(SkillEnabledRequest::class, $request->request);
66
    }
67
}
68