getMockAuthTokenRequest(); $response = $this->getMockBuilder(ResponseInterface::class) ->getMock(); $response->method('getContent')->willReturn('"Success"'); $client = $this->getMockBuilder(MockHttpClient::class)->getMock(); $client->expects($this->once()) ->method('request') ->with( 'POST', CustomerRequest::ENDPOINT, [ 'auth_bearer' => $authTokenRequest->getToken(), 'headers' => [ 'Content-Type' => 'application/json', ], 'body' => json_encode([ 'customer' => [ 'created_in' => 123, 'email' => 'oliver@oliverdavies.uk', 'firstname' => 'Oliver', 'lastname' => 'Davies', ], ]), ] ) ->willReturn($response); $request = (new CustomerRequest($client)) ->forCustomer($this->getMockCustomer()) ->withAuthToken($authTokenRequest->getToken()) ->withConfig($this->config); $this->assertSame('Success', $request->execute()); } }