/** * Test sending a payment request and receiving a payment response error. */ public function testSendWithShortErrorResponse() { //get sample response XML $path = SampleXmlValidationUtils::PAYMENT_RESPONSE_BASIC_ERROR_XML_PATH; $prefix = __DIR__ . '/../../resources'; $xml = file_get_contents($prefix . $path); $fromXMLResponse = new PaymentResponse(); $fromXMLResponse = $fromXMLResponse->fromXml($xml); //mock HttpResponse /** @var HttpResponse $httpResponseMock */ $httpResponseMock = Phockito::mock("com\\realexpayments\\remote\\sdk\\http\\HttpResponse"); \Phockito::when($httpResponseMock->getBody())->return($fromXMLResponse->toXML()); \Phockito::when($httpResponseMock->getResponseCode())->return(200); // create empty request $request = new PaymentRequest(); $httpConfiguration = new HttpConfiguration(); $httpConfiguration->setOnlyAllowHttps(false); // mock HttpClient instance $httpClientMock = Phockito::mock("com\\realexpayments\\remote\\sdk\\http\\HttpClient"); \Phockito::when($httpClientMock->execute(\Hamcrest_Core_IsAnything::anything(), \Hamcrest_Core_IsAnything::anything()))->return($httpResponseMock); // execute and send on client $realexClient = new RealexClient(SampleXmlValidationUtils::SECRET, $httpConfiguration, $httpClientMock); try { $realexClient->send($request); $this->fail("RealexException should have been thrown before this point."); } catch (RealexServerException $e) { //validate error SampleXmlValidationUtils::checkBasicResponseError($e, $this); } }