/** * @group disconnected */ public function testIterationRewindable() { $client = $this->getMock('Predis\\Client', array('getProfile', 'sscan')); $client->expects($this->any())->method('getProfile')->will($this->returnValue(Profile\Factory::get('2.8'))); $client->expects($this->exactly(2))->method('sscan')->with('key:set', 0, array())->will($this->returnValue(array(0, array('member:1st', 'member:2nd')))); $iterator = new SetKey($client, 'key:set'); $iterator->rewind(); $this->assertTrue($iterator->valid()); $this->assertSame('member:1st', $iterator->current()); $this->assertSame(0, $iterator->key()); $iterator->rewind(); $this->assertTrue($iterator->valid()); $this->assertSame('member:1st', $iterator->current()); $this->assertSame(0, $iterator->key()); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertSame('member:2nd', $iterator->current()); $this->assertSame(1, $iterator->key()); $iterator->next(); $this->assertFalse($iterator->valid()); }