GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Branch develop (05114b)
by Sébastien
05:38 queued 03:11
created

testKeyReturnsCurrentKeyInCollection()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 38
Code Lines 32

Duplication

Lines 38
Ratio 100 %

Importance

Changes 0
Metric Value
cc 1
eloc 32
nc 1
nop 0
dl 38
loc 38
rs 8.8571
c 0
b 0
f 0
1
<?php
2
/**
3
 * Novactive Collection.
4
 *
5
 * @author    Luke Visinoni <[email protected], [email protected]>
6
 * @author    Sébastien Morel <[email protected], [email protected]>
7
 * @copyright 2017 Novactive
8
 * @license   MIT
9
 */
10
11
namespace Novactive\Tests;
12
13
use Novactive\Collection\Factory;
14
15
/**
16
 * Class IteratorCollectionTest.
17
 */
18
class IteratorCollectionTest extends UnitTestCase
19
{
20
    public function testCurrentReturnsCurrentValue()
21
    {
22
        $coll = Factory::create($this->fixtures['names']);
23
        $this->assertEquals('Chelsea', $coll->current());
24
    }
25
26 View Code Duplication
    public function testNextMovesCollectionInternalPointer()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
27
    {
28
        $coll = Factory::create($this->fixtures['names']);
29
        $this->assertEquals(
30
            'Chelsea',
31
            $coll->current(),
32
            'Initial call to current() should return first item in collection.'
33
        );
34
        $this->assertEquals(
35
            'Chelsea',
36
            $coll->current(),
37
            'Subsequent calls to current() should continue to return the same value.'
38
        );
39
        $coll->next();
40
        $this->assertEquals(
41
            'Adella',
42
            $coll->current(),
43
            'After calling next(), current() should return the next item in the collection.'
44
        );
45
        $coll->next();
46
        $this->assertEquals(
47
            'Monte',
48
            $coll->current(),
49
            'Subsequent calls to next() and current() should return the next item in the collection.'
50
        );
51
        $coll->next();
52
        $coll->next();
53
        $coll->next();
54
        $coll->next();
55
        $coll->next();
56
        $coll->next();
57
        $coll->next();
58
        $this->assertEquals('Nakia', $coll->current(), 'We should now be at the last item in the collection.');
59
        $coll->next();
60
        $this->assertFalse(
61
            $coll->current(),
62
            "Subsequent calls to current() should return false because we have next'd past the end of the collection."
63
        );
64
        $coll->next();
65
        $this->assertFalse(
66
            $coll->current(),
67
            "Subsequent calls to current() should return false because we have next'd past the end of the collection."
68
        );
69
    }
70
71 View Code Duplication
    public function testKeyReturnsCurrentKeyInCollection()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
72
    {
73
        $coll = Factory::create($this->fixtures['names']);
74
        $this->assertSame(0, $coll->key(), 'Initial call to key() should return first item in collection.');
75
        $this->assertSame(0, $coll->key(), 'Subsequent calls to key() should continue to return the same value.');
76
        $coll->next();
77
        $this->assertSame(
78
            1,
79
            $coll->key(),
80
            'After calling next(), key() should return the next item in the collection.'
81
        );
82
        $coll->next();
83
        $this->assertSame(
84
            2,
85
            $coll->key(),
86
            'Subsequent calls to next() and key() should return the next item in the collection.'
87
        );
88
        $coll->next();
89
        $coll->next();
90
        $coll->next();
91
        $coll->next();
92
        $coll->next();
93
        $coll->next();
94
        $coll->next();
95
        $this->assertSame(9, $coll->key(), 'We should now be at the last item in the collection.');
96
        $coll->next();
97
        $this->assertNull(
98
            $coll->key(),
99
            'Subsequent calls to key() should continue to return null because'.
100
            " we have next'd past the end of the collection."
101
        );
102
        $coll->next();
103
        $this->assertNull(
104
            $coll->key(),
105
            'Subsequent calls to key() should continue to return null because'.
106
            " we have next'd past the end of the collection."
107
        );
108
    }
109
110
    public function testValidReturnsFalseWhenCollectionHasBeenIteratedBeyondItsLastItem()
111
    {
112
        $coll = Factory::create($this->fixtures['names']);
113
        $this->assertTrue($coll->valid(), 'Initial call to valid() should always return true.');
114
        $coll->next();
115
        $this->assertTrue($coll->valid(), 'Subsequent calls to valid() should continue to return true.');
116
        $coll->next();
117
        $this->assertTrue($coll->valid(), 'Subsequent calls to valid() should continue to return true.');
118
        $coll->next();
119
        $coll->next();
120
        $coll->next();
121
        $coll->next();
122
        $coll->next();
123
        $coll->next();
124
        $coll->next();
125
        $this->assertTrue($coll->valid(), 'When at the last item in the collection, valid() should still return true.');
126
        $coll->next();
127
        $this->assertFalse(
128
            $coll->valid(),
129
            'Finally, valid() should return false because we have iterated beyond the end of the collection.'
130
        );
131
    }
132
133
    public function testRewindWillReturnInternalPointerToItsInitialPosition()
134
    {
135
        $coll = Factory::create($this->fixtures['names']);
136
        $this->assertEquals('Chelsea', $coll->first());
137
        $this->assertTrue($coll->valid(), 'Initial call to valid() should always return true.');
138
        $coll->next();
139
        $this->assertTrue($coll->valid(), 'Subsequent calls to valid() should continue to return true.');
140
        $coll->next();
141
        $this->assertTrue($coll->valid(), 'Subsequent calls to valid() should continue to return true.');
142
        $coll->next();
143
        $coll->next();
144
        $coll->next();
145
        $coll->next();
146
        $coll->next();
147
        $coll->next();
148
        $coll->next();
149
        $this->assertTrue($coll->valid(), 'When at the last item in the collection, valid() should still return true.');
150
        $this->assertEquals($coll->last(), $coll->current(), 'Current value should be the last value now.');
151
        $coll->next();
152
        $this->assertFalse(
153
            $coll->valid(),
154
            'Finally, valid() should return false because we have iterated beyond the end of the collection.'
155
        );
156
        $this->assertNull($coll->rewind(), 'Rewind MUST NOT have a return value.');
157
        $this->assertTrue(
158
            $coll->valid(),
159
            'The rewind() method should have returned us to the beginning now so valid() should return true.'
160
        );
161
        $this->assertEquals(
162
            $coll->first(),
163
            $coll->current(),
164
            'The rewind() method should have returned us to the beginning now so'.
165
            ' current() should return the first item in the collection.'
166
        );
167
168
        $coll->next();
169
        $coll2 = clone $coll;
170
        $this->assertEquals($coll2->first(), $coll2->current(), 'A clone of a collection should be reset.');
171
    }
172
173
    public function testInstantiationShouldRewindArrayArgsInternalPointer()
174
    {
175
        $arr = $this->fixtures['names'];
176
        $this->assertEquals('Chelsea', current($arr));
177
        next($arr);
178
        $this->assertEquals('Adella', current($arr));
179
        $coll = Factory::create($arr);
180
        $this->assertEquals('Chelsea', $coll->current());
181
    }
182
}
183