public function setUp() { $this->httpClient = new HttpClient(); $mockResponse = $this->getMockBuilder('GuzzleHttp\\Psr7\\Response')->setMethods(['getStatusCode'])->disableOriginalConstructor()->getMock(); $mockPromise = $this->getMockBuilder('GuzzleHttp\\Promise\\Promise')->disableOriginalConstructor()->getMock(); $mockPromise->expects($this->exactly(3))->method('wait')->will($this->returnValue($mockResponse)); $guzzleClient = $this->getMockBuilder('GuzzleHttp\\Client')->setMethods(['sendAsync'])->disableOriginalConstructor()->getMock(); $guzzleClient->expects($this->atLeast(1))->method('sendAsync')->with($this->anything())->will($this->returnValue($mockPromise)); $this->httpClient->setClient($guzzleClient); $this->mockHttpClient = $this->getMockBuilder('TheIconic\\Tracking\\GoogleAnalytics\\Network\\HttpClient')->setMethods(['getAnalyticsResponse'])->getMock(); $this->mockHttpClient->expects($this->atLeast(1))->method('getAnalyticsResponse')->will($this->returnArgument(1)); $this->mockHttpClient->setClient($guzzleClient); }