/** * Tests iterator implementation * * @return void */ public function testIteratorImplementation() { $result = new SearchResult(); $result->rewind(); $this->assertFalse($result->valid()); $this->assertFalse($result->current()); $this->assertNull($result->key()); $result->next(); $this->assertFalse($result->valid()); $search = new Search(); $search->setEntries(array(new Entry('a'), new Entry('b'), new Entry('c'))); $result->setSearch($search); $result->rewind(); $this->assertTrue($result->valid()); $this->assertInstanceOf('Toyota\\Component\\Ldap\\Core\\Node', $result->current()); $this->assertEquals('a', $result->current()->getDn()); $this->assertEquals('a', $result->key()); $result->next(); $this->assertTrue($result->valid()); $this->assertInstanceOf('Toyota\\Component\\Ldap\\Core\\Node', $result->current()); $this->assertEquals('b', $result->current()->getDn()); $this->assertEquals('b', $result->key()); $result->next(); $this->assertTrue($result->valid()); $this->assertInstanceOf('Toyota\\Component\\Ldap\\Core\\Node', $result->current()); $this->assertEquals('c', $result->current()->getDn()); $this->assertEquals('c', $result->key()); $result->next(); $this->assertFalse($result->valid()); $this->assertFalse($result->current()); $this->assertNull($result->key()); $result->rewind(); $this->assertTrue($result->valid()); $this->assertInstanceOf('Toyota\\Component\\Ldap\\Core\\Node', $result->current()); $this->assertEquals('a', $result->current()->getDn()); $this->assertEquals('a', $result->key()); $search = new Search(); $search->setEntries(array(new Entry('d'), new Entry('e'), new Entry('f'))); $result->setSearch($search); $this->assertTrue($result->valid()); $this->assertEquals('d', $result->key(), 'Iterator is rewinded when new search is set'); }