Completed
Branch 2.x (c99d86)
by Julián
08:01
created

ResultTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 5
lcom 1
cbo 2
dl 0
loc 82
rs 10
c 1
b 0
f 1
1
<?php
2
3
/*
4
 * Unified push notification services abstraction (http://github.com/juliangut/tify).
5
 *
6
 * @license BSD-3-Clause
7
 * @link https://github.com/juliangut/tify
8
 * @author Julián Gutiérrez <[email protected]>
9
 */
10
11
namespace Jgut\Tify\Tests;
12
13
use Jgut\Tify\Result;
14
15
/**
16
 * Result tests.
17
 */
18
class ResultTest extends \PHPUnit_Framework_TestCase
19
{
20
    /**
21
     * @var Result
22
     */
23
    protected $result;
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    public function setUp()
29
    {
30
        $this->result = new Result('9a4ecb987ef59c88b12035278b86f26d448835939a4ecb987ef59c88b1203527', new \DateTime);
31
    }
32
33
    public function testDefaults()
34
    {
35
        self::assertEquals(
36
            '9a4ecb987ef59c88b12035278b86f26d448835939a4ecb987ef59c88b1203527',
37
            $this->result->getToken()
38
        );
39
        self::assertInstanceOf('\DateTime', $this->result->getDate());
40
        self::assertEquals(Result::STATUS_SUCCESS, $this->result->getStatus());
41
        self::assertTrue($this->result->isSuccess());
42
        self::assertFalse($this->result->isError());
43
        self::assertEquals('', $this->result->getStatusMessage());
44
    }
45
46
    /**
47
     * @expectedException \InvalidArgumentException
48
     */
49
    public function testAccessorsMutators()
50
    {
51
        $this->result->setToken('b8e3802766d2ced54910e68332e8c1e204b05abe96421c21eecc9f0cbc1c7043');
52
        self::assertEquals(
53
            'b8e3802766d2ced54910e68332e8c1e204b05abe96421c21eecc9f0cbc1c7043',
54
            $this->result->getToken()
55
        );
56
57
        $date = new \DateTime;
58
        $this->result->setDate($date);
59
        self::assertEquals($date, $this->result->getDate());
60
61
        $this->result->setStatus(Result::STATUS_INVALID_DEVICE);
62
        self::assertEquals(Result::STATUS_INVALID_DEVICE, $this->result->getStatus());
63
        self::assertFalse($this->result->isSuccess());
64
        self::assertTrue($this->result->isError());
65
66
        $this->result->setStatusMessage('Error');
67
        self::assertEquals('Error', $this->result->getStatusMessage());
68
69
        $this->result->setStatus('fake_status');
70
    }
71
72
    public function testSerializable()
73
    {
74
        $date = new \DateTime;
75
        $serialized = [
76
            'token' => 'aaaaa',
77
            'date' => $date->format('c'),
78
            'status' => Result::STATUS_UNKNOWN_ERROR,
79
            'statusMessage' => 'Unknown Error',
80
        ];
81
82
        $this->result->setToken($serialized['token']);
83
        $this->result->setDate($date);
84
        $this->result->setStatus($serialized['status']);
85
        $this->result->setStatusMessage($serialized['statusMessage']);
86
87
        self::assertEquals(json_encode($serialized), json_encode($this->result));
88
    }
89
}
90