ActionTest::testCategories()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 7
rs 9.4285
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
namespace Wonnova\SDK\Test\Model;
3
4
use PHPUnit_Framework_TestCase as TestCase;
5
use Wonnova\SDK\Model\Action;
6
use Wonnova\SDK\Model\Item;
7
8
/**
9
 * Class ActionTest
10
 * @author Wonnova
11
 * @link http://www.wonnova.com
12
 */
13
class ActionTest extends TestCase
14
{
15
    /**
16
     * @var Action
17
     */
18
    private $action;
19
20
    public function setUp()
21
    {
22
        $this->action = new Action();
23
    }
24
25
    public function testActionCode()
26
    {
27
        $expected = 'LOGIN';
28
        $this->assertNull($this->action->getActionCode());
29
        $this->assertSame($this->action, $this->action->setActionCode($expected));
30
        $this->assertEquals($expected, $this->action->getActionCode());
31
    }
32
33
    public function testCategories()
34
    {
35
        $expected = ['foo', 'bar'];
36
        $this->assertNull($this->action->getCategories());
37
        $this->assertSame($this->action, $this->action->setCategories($expected));
38
        $this->assertEquals($expected, $this->action->getCategories());
39
    }
40
41
    public function testItem()
42
    {
43
        $expected = new Item();
44
        $expected->setItemId('1324')
45
            ->setAuthor('foo')
46
            ->setTitle('bar');
47
        $this->assertNull($this->action->getItem());
48
        $this->assertSame($this->action, $this->action->setItem($expected));
49
        $this->assertEquals($expected, $this->action->getItem());
50
    }
51
52
    public function testToArray()
53
    {
54
        $data = [
55
            'actionCode' => 'LOGIN',
56
            'item' => [
57
                'id' => 'The Item',
58
                'title' => 'The Item',
59
                'description' => 'The Item\'s description',
60
                'author' => 'john.doe',
61
            ],
62
            'categories' => ['foo', 'bar'],
63
        ];
64
        $item = new Item();
65
        $item->setItemId('The Item')
66
            ->setTitle('The Item')
67
            ->setDescription('The Item\'s description')
68
            ->setAuthor('john.doe');
69
70
        $this->action->fromArray($data);
71
        $this->action->setItem($item);
72
        $actionArray = $this->action->toArray();
73
74
        $this->assertCount(3, $actionArray);
75
        $this->assertEquals($data, $actionArray);
76
    }
77
}
78