DataCollectionTest   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 122
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 2
dl 0
loc 122
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A testConstruct() 0 12 1
A testAddAndGetItem() 0 19 1
A testCount() 0 6 1
A testNextAndKey() 0 10 1
A testCurrentAndValid() 0 7 1
A testRewind() 0 7 1
A testRemoveItem() 0 7 1
1
<?php
2
/*
3
 * This file is part of the php-utilities package.
4
 *
5
 * (c) Marc Aschmann <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
namespace Asm\Tests\Data;
11
12
use Asm\Data\DataCollection;
13
14
/**
15
 * tests for cache factory
16
 *
17
 * @package Asm\Tests\Data
18
 * @author Marc Aschmann <[email protected]>
19
 * @uses Asm\Data\DataCollection
20
 */
21
class DataCollectionTest extends \PHPUnit_Framework_TestCase
22
{
23
24
    /**
25
     * @covers \Asm\Data\DataCollection::__construct
26
     * @covers \Asm\Data\DataCollection::getItem
27
     * @return DataCollection
28
     */
29
    public function testConstruct()
30
    {
31
        $item = new \stdClass();
32
        $item->name = 'number_one';
33
34
        $collection = new DataCollection([$item]);
35
        $this->assertInstanceOf('\Asm\Data\DataCollection', $collection);
36
37
        $this->assertEquals('number_one', $collection->getItem(0)->name);
38
39
        return $collection;
40
    }
41
42
    /**
43
     * @depends testConstruct
44
     * @covers \Asm\Data\DataCollection::addItem
45
     * @covers \Asm\Data\DataCollection::getItem
46
     * @param DataCollection $collection
47
     * @return DataCollection
48
     */
49
    public function testAddAndGetItem(DataCollection $collection)
50
    {
51
        $item = new \stdClass();
52
        $item->name = 'number_two';
53
        $collection->addItem($item);
54
        $this->assertEquals('number_two', $collection->getItem(1)->name);
55
56
        $item = new \stdClass();
57
        $item->name = 'number_three';
58
        $collection->addItem($item);
59
        $this->assertEquals('number_three', $collection->getItem(2)->name);
60
61
        $item = new \stdClass();
62
        $item->name = 'number_ten';
63
        $collection->addItem($item, 10);
64
        $this->assertEquals('number_ten', $collection->getItem(10)->name);
65
66
        return $collection;
67
    }
68
69
    /**
70
     * @depends testAddAndGetItem
71
     * @covers \Asm\Data\DataCollection::count
72
     * @param DataCollection $collection
73
     * @return DataCollection
74
     */
75
    public function testCount(DataCollection $collection)
76
    {
77
        $this->assertEquals(4, $collection->count());
78
79
        return $collection;
80
    }
81
82
    /**
83
     * @depends testCount
84
     * @covers \Asm\Data\DataCollection::next
85
     * @covers \Asm\Data\DataCollection::key
86
     * @param DataCollection $collection
87
     * @return DataCollection
88
     */
89
    public function testNextAndKey(DataCollection $collection)
90
    {
91
        $this->assertEquals(0, $collection->key());
92
        $collection->next();
93
        $this->assertEquals(1, $collection->key());
94
        $collection->next();
95
        $this->assertEquals(2, $collection->key());
96
97
        return $collection;
98
    }
99
100
    /**
101
     * @depends testNextAndKey
102
     * @covers \Asm\Data\DataCollection::current
103
     * @covers \Asm\Data\DataCollection::valid
104
     * @param DataCollection $collection
105
     * @return DataCollection
106
     */
107
    public function testCurrentAndValid(DataCollection $collection)
108
    {
109
        $this->assertEquals('number_three', $collection->current()->name);
110
        $this->assertNotFalse($collection->valid());
111
112
        return $collection;
113
    }
114
115
    /**
116
     * @depends testCurrentAndValid
117
     * @covers \Asm\Data\DataCollection::rewind
118
     * @param DataCollection $collection
119
     * @return DataCollection
120
     */
121
    public function testRewind(DataCollection $collection)
122
    {
123
        $collection->rewind();
124
        $this->assertEquals(0, $collection->key());
125
126
        return $collection;
127
    }
128
129
    /**
130
     * @depends testRewind
131
     * @covers \Asm\Data\DataCollection::removeItem
132
     * @param DataCollection $collection
133
     * @return DataCollection
134
     */
135
    public function testRemoveItem(DataCollection $collection)
136
    {
137
        $collection->removeItem(10);
138
        $this->assertFalse($collection->getItem(10));
139
140
        return $collection;
141
    }
142
}
143