/**
  * 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);
     }
 }