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