Passed
Push — master ( 2f8437...bbe808 )
by Radosław
02:25
created

CollectionTest::testOffsetSetImmutability()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Radowoj\Searcher\SearchResult;
4
5
use PHPUnit\Framework\TestCase;
6
use Radowoj\Searcher\SearchResult\Collection;
7
use Radowoj\Searcher\SearchResult\Item;
8
use Radowoj\Searcher\SearchResult\IItem;
9
10
use Traversable;
11
use Countable;
12
13
class CollectionTest extends TestCase
14
{
15
16
    protected $collection;
17
18
19
    public function setUp()
20
    {
21
        $this->collection = new Collection([
22
            0 => new Item([]),
23
            1 => new Item([]),
24
        ], 42);
25
    }
26
27
28
    public function testInstantiation()
29
    {
30
        $collection = new Collection();
0 ignored issues
show
Unused Code introduced by
$collection is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
31
    }
32
33
34
    public function testOffsetExists()
35
    {
36
        $this->assertTrue($this->collection->offsetExists(0));
37
        $this->assertTrue($this->collection->offsetExists(1));
38
        $this->assertFalse($this->collection->offsetExists(2));
39
    }
40
41
42
    /**
43
     * @expectedException OutOfRangeException
44
     * @expectedExceptionMessage Invalid collection index: 2
45
     */
46
    public function testOffsetGet()
47
    {
48
        $this->assertInstanceOf(IItem::class, $this->collection->offsetGet(0));
49
        $this->assertInstanceOf(IItem::class, $this->collection->offsetGet(1));
50
        $this->assertInstanceOf(IItem::class, $this->collection->offsetGet(2));
51
    }
52
53
54
    /**
55
     * @expectedException Exception
56
     * @expectedExceptionMessage Search result collection is immutable.
57
     */
58
    public function testOffsetSetImmutability()
59
    {
60
        $this->collection->offsetSet(1, 'asas');
61
    }
62
63
64
    /**
65
     * @expectedException Exception
66
     * @expectedExceptionMessage Search result collection is immutable.
67
     */
68
    public function testOffsetUnsetImmutability()
69
    {
70
        $this->collection->offsetUnset(1);
71
    }
72
73
74
    public function testIterator()
75
    {
76
        $this->assertInstanceOf(Traversable::class, $this->collection);
77
        $this->assertInstanceOf(Traversable::class, $this->collection->getIterator());
78
    }
79
80
81
    public function testCountable()
82
    {
83
        $this->assertInstanceOf(Countable::class, $this->collection);
84
        $this->assertSame(2, $this->collection->count());
85
    }
86
87
88
    public function testTotalCount()
89
    {
90
        $this->assertSame(42, $this->collection->totalCount());
91
    }
92
93
}
94