/**
  * 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;
 }