public static function fromAssociativeArray($assocArray) { $values = array(); foreach ($assocArray as $currKey => $currValue) { $values[$currKey] = $currValue; } if (isset($assocArray[self::APPNEXUS_VALUES])) { $exchangeCampaign = new ExchangeCampaign(); $exchangeCampaign->fromAssociativeArray($assocArray[self::APPNEXUS_VALUES]); $values[self::APPNEXUS_VALUES] = $exchangeCampaign; } if (isset($assocArray[self::AUDIENCE_GROUPS])) { $audienceGroups = new CampaignAudienceGroups(array()); $audienceGroups->fromAssociativeArray($assocArray[self::AUDIENCE_GROUPS]); $values[self::AUDIENCE_GROUPS] = $audienceGroups; } if (isset($assocArray[self::APPNEXUS_OBJECT_INCLUSIONS])) { $appnexusObjectList = new AppNexusDataIncludeFrame(); $appnexusObjectList->fromAssociativeArray($assocArray[self::APPNEXUS_OBJECT_INCLUSIONS]); $values[self::APPNEXUS_OBJECT_INCLUSIONS] = $appnexusObjectList; } if (isset($assocArray[self::FACEBOOK_CONTEXT])) { $facebookContext = new FacebookContext(); $facebookContext->fromAssociativeArray($assocArray[self::FACEBOOK_CONTEXT]); $values[self::FACEBOOK_CONTEXT] = $facebookContext; } $context = new Context($values); return $context; }
public function test_toFromAssociativeArray_returnsCorrectValues() { $mockPageID = "mockPageId"; $mockAdAccountID = "mockAdAccountId"; $mockIgActorId = "mockIgActorId"; $mockAdSetArray = array("adSetId" => "bar"); $mockAdSet = $this->buildMock('\\PaperG\\FirehoundBlob\\Facebook\\FacebookAdSet'); $mockAdSet->expects($this->once())->method('toAssociativeArray')->will($this->returnValue($mockAdSetArray)); $mockAdSets = [$mockAdSet]; $facebookContext = new FacebookContext(); $facebookContext->setAdAccountId($mockAdAccountID); $facebookContext->setPageId($mockPageID); $facebookContext->setAdSets($mockAdSets); $facebookContext->setIgActorId($mockIgActorId); $expectedArray = array(FacebookContext::PAGE_ID => $mockPageID, FacebookContext::AD_ACCOUNT_ID => $mockAdAccountID, FacebookContext::AD_SETS => array($mockAdSetArray), FacebookContext::ACCESS_TOKEN => null, FacebookContext::IG_ACTOR_ID => $mockIgActorId); $associativeArray = $facebookContext->toAssociativeArray(); $this->assertEquals($expectedArray, $associativeArray); $facebookContext->setAdSets(null); $facebookContext->setPageId(null); $facebookContext->setAdAccountId(null); $facebookContext->setIgActorId(null); $facebookContext->fromAssociativeArray($associativeArray); $this->assertEquals($mockPageID, $facebookContext->getPageId()); $this->assertEquals($mockAdAccountID, $facebookContext->getAdAccountId()); $adSet = $facebookContext->getAdSets()[0]; $this->assertEquals("bar", $adSet->getAdSetId()); }