/**
  * @dataProvider conditions
  */
 public function testAddItemToCache($articleExist, $articlesList, $cachedList, $expectedResult, $brokenCache = false)
 {
     // Game
     $articlesIdentifiers = array();
     foreach ($articlesList as $art) {
         $articlesIdentifiers[] = ScavengerHunt::makeIdentifier(self::LANDING_WIKI_ID, $art);
     }
     $mockedGame = $this->getMock('ScavengerHuntGame', array('getArticleIdentifier'), array($this->app));
     $mockedGame->expects($this->any())->method('getArticleIdentifier')->will($this->returnValue($articlesIdentifiers));
     $this->mockClass('ScavengerHuntGame', $mockedGame);
     $game = $this->getFakeGame();
     // Hunt
     $scavengerHunt = $this->getMock('ScavengerHunt', array('getDataFromCache', 'saveDataToCache'));
     $scavengerHunt->setGame($articleExist ? $game : null);
     $cachedIdentifiers = array();
     foreach ($cachedList as $art) {
         $cachedIdentifiers[] = ScavengerHunt::makeIdentifier(self::LANDING_WIKI_ID, $art);
     }
     $scavengerHunt->expects($this->any())->method('saveDataToCache')->will($this->returnValue(true));
     $scavengerHunt->expects($this->any())->method('getDataFromCache')->will($this->returnValue(array('gameId' => $scavengerHunt->getHuntId(), ScavengerHunt::VISITED_ART_KEY => $brokenCache ? 'broken' : $cachedIdentifiers)));
     // User
     $mockedUser = $this->getMock('User', array('isAnon'));
     $mockedUser->expects($this->any())->method('isAnon')->will($this->returnValue(self::MOCK_USER_NAME));
     $this->mockClass('User', $mockedUser);
     $_COOKIE[$scavengerHunt->getHuntIdKey()] = $articleExist ? self::MOCK_GAME_ID : 0;
     $result = $scavengerHunt->addItemToCache(self::MOCK_TEXT, self::LANDING_WIKI_ID);
     $this->assertEquals(empty($result), empty($expectedResult));
 }
 /**
  * @dataProvider conditions
  */
 public function testGetFoundIndexes($gameExists, $articlesList, $foundList, $expectedResult, $brokenCache = false)
 {
     // mocking game object
     $articlesIdentifiers = array();
     foreach ($articlesList as $art) {
         $articlesIdentifiers[] = ScavengerHunt::makeIdentifier(self::LANDING_WIKI_ID, $art);
     }
     $mockedGame = $this->getMock('ScavengerHuntGame', array('getArticleIdentifier'), array($this->app));
     $mockedGame->expects($this->any())->method('getArticleIdentifier')->will($this->returnValue($articlesIdentifiers));
     $this->mockClass('ScavengerHuntGame', $mockedGame);
     $game = $this->getFakeGame();
     // mocking scavenger hunt and passing game to the hunt
     $scavengerHunt = $this->getMock('ScavengerHunt', array('getDataFromCache'));
     $scavengerHunt->setGame($gameExists ? $game : null);
     $cachedIdentifiers = array();
     foreach ($foundList as $art) {
         $cachedIdentifiers[] = ScavengerHunt::makeIdentifier(self::LANDING_WIKI_ID, $art);
     }
     $scavengerHunt->expects($this->any())->method('getDataFromCache')->will($this->returnValue(array('gameId' => $scavengerHunt->getHuntId(), ScavengerHunt::VISITED_ART_KEY => $brokenCache ? 'broken' : $cachedIdentifiers)));
     // mocking user
     $mockedUser = $this->getMock('User', array('isAnon'));
     $mockedUser->expects($this->any())->method('isAnon')->will($this->returnValue(self::MOCK_USER_NAME));
     $this->mockClass('User', $mockedUser);
     // setting cookie values
     $_COOKIE[$scavengerHunt->getHuntIdKey()] = $gameExists ? self::MOCK_GAME_ID : 0;
     // test and assertions
     $result = $scavengerHunt->getFoundIndexes();
     $this->assertEquals($expectedResult, $result);
 }
예제 #3
0
 public function getArticleIdentifier()
 {
     $articleIdentifiers = array();
     foreach ($this->articles as $article) {
         $articleIdentifiers[] = ScavengerHunt::makeIdentifier($article->getWikiId(), $article->getArticleName());
     }
     return $articleIdentifiers;
 }
 /**
  * @param $cityId
  * @param $articleName
  * @return string
  */
 protected function makeIdentifier($cityId, $articleName)
 {
     return ScavengerHunt::makeIdentifier($cityId, $articleName);
 }