/** * @param \TYPO3\CMS\Extbase\Persistence\Generic\QueryResult $categories * @return \TYPO3\CMS\Extbase\Persistence\Generic\QueryResult */ protected function removeExcludeCategories(\TYPO3\CMS\Extbase\Persistence\Generic\QueryResult $categories) { $excludeCategories = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $this->settings['excludeCategories']); if (count($excludeCategories)) { /** @var $category \Evoweb\SfBooks\Domain\Model\Category */ foreach ($categories as $category) { if (in_array($category->getUid(), $excludeCategories)) { $categories->offsetUnset($categories->key()); } } } return $categories; }
/** * @test */ public function iteratorMethodsAreCorrectlyImplemented() { $array1 = array('foo' => 'Foo1', 'bar' => 'Bar1'); $array2 = array('foo' => 'Foo2', 'bar' => 'Bar2'); $this->assertEquals($array1, $this->queryResult->current()); $this->assertTrue($this->queryResult->valid()); $this->queryResult->next(); $this->assertEquals($array2, $this->queryResult->current()); $this->assertTrue($this->queryResult->valid()); $this->assertEquals(1, $this->queryResult->key()); $this->queryResult->next(); $this->assertFalse($this->queryResult->current()); $this->assertFalse($this->queryResult->valid()); $this->assertNull($this->queryResult->key()); $this->queryResult->rewind(); $this->assertEquals(0, $this->queryResult->key()); $this->assertEquals($array1, $this->queryResult->current()); }