getMockBuilder(Config::class) ->onlyMethods([]) ->setConstructorArgs( [ 'vendor_id' => 123, 'username' => 'opdavies', 'password' => 'secret', ] ) ->getMock(); $mockRepsonse = $this->getMockBuilder(ResponseInterface::class) ->getMock(); $mockRepsonse->method('getContent')->willReturn('"abc123"'); $client = $this->getMockBuilder(MockHttpClient::class)->getMock(); $client->expects($this->once()) ->method('request') ->with( 'POST', AuthTokenAbstractRequest::BASE_URL .AuthTokenAbstractRequest::ENDPOINT, [ 'query' => [ 'password' => 'secret', 'username' => 'opdavies', ], ] ) ->willReturn($mockRepsonse); $token = (new AuthTokenAbstractRequest($client)) ->withConfig($config) ->getToken(); $this->assertSame('abc123', $token); } }