/** * Extract complete player profile information from an array. * * @param array $params * @return Player */ public static function extract($params) { $portrait = IconParsingService::extract($params['portrait']); $career = CareerParsingService::extract($params['career']); $playerSwarmLevels = SwarmLevelsParsingService::extract($params['swarmLevels']); $campaign = CampaignParsingService::extract($params['campaign']); $season = SeasonParsingService::extract($params['season']); $rewards = RewardsParsingService::extract($params['rewards']); $achievements = AchievementParsingService::extract($params['achievements']); $profileBasicInformation = BasicProfileParsingService::extract($params); $player = new Player(); $player->setBasicInformation($profileBasicInformation)->setPortrait($portrait)->setCareer($career)->setSwarmLevels($playerSwarmLevels)->setCampaign($campaign)->setSeason($season)->setRewards($rewards)->setAchievements($achievements); return $player; }
public function testExtract() { $mockData = array('seasonId' => 17, 'totalGamesThisSeason' => 160, 'stats' => array(array('type' => '1v1', 'wins' => 52, 'games' => 73)), 'seasonNumber' => 1, 'seasonYear' => 2014); $result = SeasonParsingService::extract($mockData); $this->assertEquals($mockData['seasonId'], $result->getSeasonId()); $this->assertEquals($mockData['totalGamesThisSeason'], $result->getTotalGamesThisSeason()); $this->assertEquals($mockData['seasonNumber'], $result->getSeasonNumber()); $this->assertEquals($mockData['seasonYear'], $result->getSeasonYear()); /** * @var $statsEntry SeasonStats */ $statsArray = $result->getStats(); $statsEntry = $statsArray[0]; $this->assertEquals($mockData['stats'][0]['type'], $statsEntry->getType()); $this->assertEquals($mockData['stats'][0]['wins'], $statsEntry->getWins()); $this->assertEquals($mockData['stats'][0]['games'], $statsEntry->getGames()); }