oRequest = new Request( new Authentication('myuser', 'mypass'), new Metric('shares'), new Dimension('content'), array() ); } public function tearDown() { $this->oRequest = null; } public function testConstruct() { $this->assertTrue(is_a($this->oRequest, 'Request')); } public function testCanProduceApiUrl() { $this->assertEquals( 'http://api.addthis.com/analytics/1.0/pub/shares/content.json?username=myuser&password=mypass', $this->oRequest->getRequest() ); } public function testCanAlterMetric() { $this->oRequest->setMetric(new Metric('subscriptions')); $this->assertEquals( 'http://api.addthis.com/analytics/1.0/pub/subscriptions/content.json?username=myuser&password=mypass', $this->oRequest->getRequest() ); } public function testCanAlterDimension() { $this->oRequest->setDimension(new Dimension('country')); $this->assertEquals( 'http://api.addthis.com/analytics/1.0/pub/shares/country.json?username=myuser&password=mypass', $this->oRequest->getRequest() ); } public function testDimensionIsOptional() { $this->oRequest->setDimension(null); $this->assertEquals( 'http://api.addthis.com/analytics/1.0/pub/shares.json?username=myuser&password=mypass', $this->oRequest->getRequest() ); } public function testCanChangeAccount() { $this->oRequest->setAuthentication( new Authentication('anotheruser', 'anotherpass') ); $this->assertEquals( 'http://api.addthis.com/analytics/1.0/pub/shares/content.json?username=anotheruser&password=anotherpass', $this->oRequest->getRequest() ); } public function testCanSetRequestParameters() { $this->oRequest->setQuery(array( new QueryParameter('service', 'email,twitter'), new QueryParameter('url', 'http://www.myurl.com') )); $this->assertEquals( 'http://api.addthis.com/analytics/1.0/pub/shares/content.json?username=myuser&password=mypass&service=email,twitter&url=http%3A%2F%2Fwww.myurl.com', $this->oRequest->getRequest() ); } }