コード例 #1
0
 public function testBuild()
 {
     $prepareUrl = new PrepareUrl();
     $singleParameter = new SingleTestParameter();
     $singleParameter->setValue('foo');
     $singleParameterIdx = new SingleTestParameterIndexed(4);
     $singleParameterIdx->setValue(9);
     $cacheBuster = new CacheBuster();
     $cacheBuster->setValue('123');
     $singles = [$singleParameter, $cacheBuster, $singleParameterIdx];
     $compoundCollection = new CompoundParameterTestCollection(6);
     $compoundParameter = new CompoundTestParameter(['sku' => 555, 'name' => 'cathy']);
     $compoundCollection->add($compoundParameter);
     $compoundParameter2 = new CompoundTestParameter(['sku' => 666, 'name' => 'isa']);
     $compoundCollection->add($compoundParameter2);
     $compounds = [$compoundCollection];
     $url = $prepareUrl->build('http://test-collector.com', $singles, $compounds);
     $payload = $prepareUrl->getPayloadParameters();
     $expect = ['test' => 'foo', 'testi4' => 9, 'cp6t1id' => 555, 'cp6t1nm' => 'cathy', 'cp6t2id' => 666, 'cp6t2nm' => 'isa', 'z' => '123'];
     $this->assertEquals($expect, $payload);
     // assets cache buster is last element
     $count = 1;
     foreach ($payload as $key => $value) {
         if ($count === 7) {
             $this->assertEquals('z', $key);
             $this->assertEquals('123', $value);
         }
         $count++;
     }
 }
コード例 #2
0
 /**
  * Prepares all the Single Parameters to be sent to GA.
  *
  * @param SingleParameter[] $singleParameters
  * @return array
  */
 private function getSingleParametersPayload(array $singleParameters)
 {
     $postData = [];
     $cacheBuster = new CacheBuster();
     foreach ($singleParameters as $parameterObj) {
         if ($parameterObj->getName() === $cacheBuster->getName()) {
             $this->cacheBuster = $parameterObj->getValue();
             continue;
         }
         $postData[$parameterObj->getName()] = $parameterObj->getValue();
     }
     return $postData;
 }