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++; } }
/** * Build and returns URL used to send to Google Analytics. * * @return string */ public function getUrl() { $prepareUrl = new PrepareUrl(); return $prepareUrl->build($this->getEndpoint(), $this->singleParameters, $this->compoundParametersCollections); }