testHetrixtoolsServiceResponseEmptyJson()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 2
c 1
b 1
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
3
namespace Azine\MailgunWebhooksBundle\Tests\Services\HetrixtoolsService;
4
5
use Azine\MailgunWebhooksBundle\Services\HetrixtoolsService\HetrixtoolsServiceResponse;
6
7
class HetrixtoolsServiceResponseTest extends \PHPUnit\Framework\TestCase
8
{
9
    public function testHetrixtoolsServiceResponse()
10
    {
11
        $responseJson = '{
12
            "status": "SUCCESS",
13
            "api_calls_left": 1976,
14
            "blacklist_check_credits_left": 81,
15
            "blacklisted_count": 3,
16
            "blacklisted_on": [
17
                {
18
                    "rbl": "example1.com",
19
                    "delist": "https://1.example.com/ip/198.51.100.42"
20
                },
21
                {
22
                    "rbl": "example2.org",
23
                    "delist": "https://2.example.com/query/ip/198.51.100.42"
24
                },
25
                {
26
                    "rbl": "example3.org",
27
                    "delist": "https://3.example.com/query/ip/198.51.100.42"
28
                }
29
            ],
30
            "links": {
31
                "report_link": "https://3.example.com/report/blacklist/token/",
32
                "whitelabel_report_link": "",
33
                "api_report_link": "https://api.example.com/v1/token/report/198.51.100.42/",
34
                "api_blacklist_check_link": "https://api.example.com/v2/token/blacklist-check/ipv4/198.51.100.42/"
35
            }
36
        }';
37
38
        $response = HetrixtoolsServiceResponse::fromJson($responseJson);
39
40
        $this->assertInstanceOf(HetrixtoolsServiceResponse::class, $response);
41
        $this->assertSame('SUCCESS', $response->status);
42
        $this->assertSame(4, sizeof($response->links));
43
        $this->assertSame(3, $response->blacklisted_count);
44
    }
45
46
    /**
47
     * @expectedException \InvalidArgumentException
48
     */
49
    public function testHetrixtoolsServiceResponseEmptyJson()
50
    {
51
        //Test with empty string
52
        $responseJson = '';
53
        HetrixtoolsServiceResponse::fromJson($responseJson);
54
    }
55
56
    /**
57
     * @expectedException \InvalidArgumentException
58
     */
59
    public function testHetrixtoolsServiceResponseWrongJson()
60
    {
61
        //Test with invalid Json
62
        $responseJson = 'invalidJson';
63
        HetrixtoolsServiceResponse::fromJson($responseJson);
64
    }
65
66
    /**
67
     * @expectedException \InvalidArgumentException
68
     */
69
    public function testHetrixtoolsServiceResponseNullJson()
70
    {
71
        //Test with invalid Json
72
        HetrixtoolsServiceResponse::fromJson(null);
73
    }
74
}
75