/**
  *
  */
 public function testToFromArray()
 {
     $sut = new UnmanagedDcmBlob();
     $mockAdTag = "mock ad tag";
     $mockCreativeAssetArray = [DcmCreativeAsset::AD_TAG => $mockAdTag];
     $testArray = [UnmanagedDcmBlob::CREATIVE_ASSETS => [$mockCreativeAssetArray]];
     $mockCallbackUrl = 'mock callback url';
     $mockAdvId = 'mock adv id';
     $mockPublicationId = 'mock pub id';
     $mockHeaders = ['mock headers'];
     $testArray[UnmanagedDcmBlob::STATUS_CALLBACK_URL] = $mockCallbackUrl;
     $testArray[UnmanagedDcmBlob::GOOGLE_ADVERTISER_ID] = $mockAdvId;
     $testArray[UnmanagedDcmBlob::PUBLICATION_ID] = $mockPublicationId;
     $testArray[UnmanagedDcmBlob::STATUS_CALLBACK_HEADERS] = $mockHeaders;
     $sut->fromArray($testArray);
     $assets = $sut->getCreativeAssets();
     $asset = $assets[0];
     $this->assertEquals($mockAdTag, $asset->getAdTag());
     $this->assertEquals($mockCallbackUrl, $sut->getStatusCallbackUrl());
     $this->assertEquals($mockAdvId, $sut->getAdvertiserId());
     $this->assertEquals($mockPublicationId, $sut->getPublicationId());
     $this->assertEquals($mockHeaders, $sut->getStatusCallbackHeaders());
     $array = $sut->toArray();
     $this->assertEquals($testArray[UnmanagedDcmBlob::CREATIVE_ASSETS][0][DcmCreativeAsset::AD_TAG], $array[UnmanagedDcmBlob::CREATIVE_ASSETS][0][DcmCreativeAsset::AD_TAG]);
     $this->assertEquals($mockCallbackUrl, $array[UnmanagedDcmBlob::STATUS_CALLBACK_URL]);
     $this->assertEquals($mockAdvId, $array[UnmanagedDcmBlob::GOOGLE_ADVERTISER_ID]);
     $this->assertEquals($mockPublicationId, $array[UnmanagedDcmBlob::PUBLICATION_ID]);
     $this->assertEquals($mockHeaders, $array[UnmanagedDcmBlob::STATUS_CALLBACK_HEADERS]);
 }
 public function testIsValidUpdateBlob()
 {
     $assetArray = ["uuid" => "blah", "imageUrl" => "image url"];
     $mockCreativeAsset = $this->buildMock('PaperG\\FirehoundBlob\\Dcm\\DcmCreativeAsset');
     $this->addExpectation($mockCreativeAsset, $this->atLeastOnce(), 'toArray', null, $assetArray);
     $mockAssets = [$mockCreativeAsset];
     $mockValidationResult = $this->buildMock('PaperG\\FirehoundBlob\\ScenarioValidators\\ValidationResult');
     $this->addExpectation($mockValidationResult, $this->once(), 'getResult', null, true);
     $this->addExpectation($this->mockValidator, $this->once(), 'isValidUpdate', null, $mockValidationResult);
     $dcmBlob = new UnmanagedDcmBlob();
     $dcmBlob->setAdvertiserId(1234);
     $dcmBlob->setCreativeAssets($mockAssets);
     $dcmBlob->setPublicationId(1234);
     $dcmBlob->setStatusCallbackUrl("mock callback url");
     $dcmBlob->setStatusCallbackHeaders(["header" => "value"]);
     $testBlob = new ScenarioBlob();
     $testBlob->setBlob($dcmBlob);
     $result = $this->sut->isValidUpdateBlob($testBlob);
     $this->assertTrue($result->getResult());
     $this->assertEmpty($result->getMessage());
 }
 /**
  * @param UnmanagedDcmBlob $blob
  * @return ValidationResult
  */
 private function isValid(UnmanagedDcmBlob $blob)
 {
     return $this->validate($blob->toArray());
 }