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++; } }
public function testPost() { $singleParameter = new SingleTestParameter(); $singleParameter->setValue('hey'); $singleParameterIdx = new SingleTestParameterIndexed(4); $singleParameterIdx->setValue(9); $singles = [$singleParameter, $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]; $response = $this->httpClient->post('http://test-collector.com', $singles, $compounds); $this->assertInstanceOf('TheIconic\\Tracking\\GoogleAnalytics\\AnalyticsResponse', $response); $payload = $this->httpClient->getPayloadParameters(); $expect = ['test' => 'hey', 'testi4' => 9, 'cp6t1id' => 555, 'cp6t1nm' => 'cathy', 'cp6t2id' => 666, 'cp6t2nm' => 'isa']; $this->assertEquals($expect, $payload); }