예제 #1
0
 public function testIteratorInterfaceSkipEmpty()
 {
     $content = "line1\n\nline2";
     $url = vfsStream::newFile('test.txt')->withContent($content)->at($this->_root)->url();
     $fileObject = new FileObject($url, 'r');
     $fileObject->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY | \SplFileObject::READ_AHEAD);
     $fileObject->rewind();
     $this->assertTrue($fileObject->valid());
     $this->assertEquals("line1", $fileObject->current());
     $this->assertSame(0, $fileObject->key());
     $fileObject->next();
     $this->assertTrue($fileObject->valid());
     $this->assertEquals('line2', $fileObject->current());
     $this->assertSame(1, $fileObject->key());
     $fileObject->next();
     // Beyond EOF
     $this->assertFalse($fileObject->valid());
     $this->assertFalse($fileObject->current());
     $this->assertSame(2, $fileObject->key());
     $fileObject->rewind();
     $this->assertTrue($fileObject->valid());
     $this->assertEquals("line1", $fileObject->current());
     $this->assertSame(0, $fileObject->key());
 }