/** * Test if displaymode can be set * * @test * @return void */ public function displayModeCanBeSetTest() { $displayMode = 'allRandom'; $this->fixture->setDisplayMode($displayMode); $this->assertEquals($displayMode, $this->fixture->getDisplayMode()); }
/** * Returns the result of the query based on the given displaymode set in demand * * @param \TYPO3\CMS\Extbase\Persistence\QueryInterface $query The query * @param \DERHANSEN\SfBanners\Domain\Model\BannerDemand $demand The demand * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface */ protected function getResult(QueryInterface $query, BannerDemand $demand) { $result = array(); // Do not respect syslanguage since we search for uids - @see forge #47192 $query->getQuerySettings()->setRespectSysLanguage(false); switch ($demand->getDisplayMode()) { case 'all': $result = $query->execute(); break; case 'allRandom': $result = $this->objectManager->get('DERHANSEN\\SfBanners\\Persistence\\RandomQueryResult', $query); break; case 'random': $rows = $query->execute()->count(); $rowNumber = mt_rand(0, max(0, $rows - 1)); $result = $query->setOffset($rowNumber)->setLimit(1)->execute(); break; default: break; } return $result; }