public function test_toFromAssociativeArray_shouldBeCorrect()
 {
     $platformTargeting = new PlatformTargeting(false, false);
     $array = $platformTargeting->toAssociativeArray();
     $this->assertEquals(array(PlatformTargeting::DESKTOP => false, PlatformTargeting::MOBILE => false, PlatformTargeting::VERSION => PlatformTargeting::CURR_VERSION), $array);
     $newPlatformTargeting = PlatformTargeting::fromAssociativeArray($array);
     $this->assertFalse($newPlatformTargeting->getMobile());
     $this->assertFalse($newPlatformTargeting->getDesktop());
 }
 public static function fromAssociativeArray($firehoundBlobArray)
 {
     $name = isset($firehoundBlobArray[self::NAME]) ? $firehoundBlobArray[self::NAME] : null;
     $identifier = isset($firehoundBlobArray[self::IDENTIFIER]) ? $firehoundBlobArray[self::IDENTIFIER] : null;
     $startDate = isset($firehoundBlobArray[self::START_DATE]) ? $firehoundBlobArray[self::START_DATE] : null;
     $endDate = isset($firehoundBlobArray[self::END_DATE]) ? $firehoundBlobArray[self::END_DATE] : null;
     $budgets = null;
     if (isset($firehoundBlobArray[self::BUDGETS]) && is_array($firehoundBlobArray[self::BUDGETS])) {
         $budgets = array();
         foreach ($firehoundBlobArray[self::BUDGETS] as $key => $budgetArray) {
             $budgets[$key] = Budget::fromAssociativeArray($budgetArray);
         }
     }
     $budget = is_array($budgets) ? $budgets : null;
     $targeting = isset($firehoundBlobArray[self::TARGETING]) ? Targeting::fromAssociativeArray($firehoundBlobArray[self::TARGETING]) : null;
     $platformTargeting = isset($firehoundBlobArray[self::PLATFORM_TARGETING]) ? PlatformTargeting::fromAssociativeArray($firehoundBlobArray[self::PLATFORM_TARGETING]) : null;
     $exchangeTargeting = isset($firehoundBlobArray[self::EXCHANGE_TARGETING]) ? ExchangeTargeting::fromAssociativeArray($firehoundBlobArray[self::EXCHANGE_TARGETING]) : null;
     $creative = self::getCreativeFromBlobArray($firehoundBlobArray);
     $context = isset($firehoundBlobArray[self::CONTEXT]) ? Context::fromAssociativeArray($firehoundBlobArray[self::CONTEXT]) : null;
     $firehoundBlob = new FirehoundBlob($name, $identifier, $startDate, $endDate, $budget, $targeting, $platformTargeting, $exchangeTargeting, $creative, $context);
     return $firehoundBlob;
 }