Completed
Branch v1 (ffe92e)
by Julián
02:44
created

MessageTest::defaultParametersProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 7
rs 9.4285
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
/**
3
 * Push notification services abstraction (http://github.com/juliangut/tify)
4
 *
5
 * @link https://github.com/juliangut/tify for the canonical source repository
6
 *
7
 * @license https://github.com/juliangut/tify/blob/master/LICENSE
8
 */
9
10
namespace Jgut\Tify\Tests\Message;
11
12
use Jgut\Tify\Message;
13
14
/**
15
 * Message tests.
16
 */
17
class MessageTest extends \PHPUnit_Framework_TestCase
18
{
19
    /**
20
     * @var \Jgut\Tify\Message
21
     */
22
    protected $message;
23
24
    public function setUp()
25
    {
26
        $this->message = new Message;
27
    }
28
29
    /**
30
     * @dataProvider defaultParametersProvider
31
     */
32
    public function testDefaults($parameter)
33
    {
34
        self::assertTrue($this->message->hasParameter($parameter));
35
        self::assertNull($this->message->getParameter($parameter));
36
37
        self::assertNull($this->message->getPayload('any_parameter'));
38
        self::assertEmpty($this->message->getPayloadData());
39
    }
40
41
    public function defaultParametersProvider()
42
    {
43
        return [
44
            ['title'],
45
            ['body'],
46
        ];
47
    }
48
49
    public function testMutators()
50
    {
51
        $this->message->setTitle('message title');
52
        self::assertEquals('message title', $this->message->getParameter('title'));
53
54
        $this->message->setBody('message body');
55
        self::assertEquals('message body', $this->message->getParameter('body'));
56
    }
57
58
    public function testPayload()
59
    {
60
        $this->message->setPayload('first', true);
61
        self::assertTrue($this->message->hasPayload('first'));
62
        self::assertTrue($this->message->getPayload('first'));
63
        self::assertCount(1, $this->message->getPayloadData());
64
65
        $this->message->setPayloadData([
66
            'second' => 'second',
67
            'third' => 'third',
68
        ]);
69
        self::assertTrue($this->message->hasPayload('second'));
70
        self::assertCount(2, $this->message->getPayloadData());
71
    }
72
73
    /**
74
     * @expectedException \InvalidArgumentException
75
     */
76
    public function testInvalidAPNSPayload()
77
    {
78
        $this->message->setPayload('apc', 'value');
79
    }
80
81
    /**
82
     * @dataProvider invalidGCMPayloadProvider
83
     *
84
     * @param string $parameter
85
     *
86
     * @expectedException \InvalidArgumentException
87
     */
88
    public function testInvalidGCMPayload($parameter)
89
    {
90
        $this->message->setPayload($parameter, 'value');
91
    }
92
93
    public function invalidGCMPayloadProvider()
94
    {
95
        return [
96
            ['google'],
97
            ['google_param'],
98
            ['gcm'],
99
            ['gcm_param'],
100
            ['from'],
101
            ['collapse_key'],
102
            ['delay_while_idle'],
103
            ['time_to_live'],
104
            ['restricted_package_name'],
105
            ['dry_run'],
106
            ['priority'],
107
            ['content_available'],
108
        ];
109
    }
110
}
111