private function guzzleClientShouldSetupToken() { $this->guzzleClient->shouldReceive('post')->with(WhenIWorkApi::WHEN_I_WORK_ENDPOINT . '/login', array('headers' => array('W-Key' => self::DEVELOPER_KEY), 'json' => array('username' => self::USERNAME, 'password' => self::PASSWORD)))->once()->andReturn($this->request); $mockStream = \Mockery::mock('GuzzleHttp\\Psr7\\Stream'); $mockStream->shouldReceive('close')->once(); $mockStream->shouldReceive('getContents')->once()->andReturn('{"login":{"token":"someHiddenToken"}}'); $this->request->shouldReceive('getBody')->once()->andReturn($mockStream); $this->request->shouldReceive('\\GuzzleHttp\\json_decode')->andReturn(array('login' => array('token' => self::TOKEN))); }