private function normaliseThreedsecure(ThreeDSecureResponse $response)
 {
     $threeDSecure = $response->getThreeDSecure();
     if (is_null($threeDSecure)) {
         return array();
     }
     return array_filter(array('status' => $threeDSecure->getStatus(), 'eci' => $threeDSecure->getEci(), 'xid' => $threeDSecure->getXid(), 'cavv' => $threeDSecure->getCavv(), 'algorithm' => $threeDSecure->getAlgorithm()));
 }
 private static function getClassName($xml, MessageType $messageType)
 {
     switch ($messageType) {
         case MessageType::PAYMENT:
             if (self::IsRequest($xml)) {
                 return PaymentRequest::GetClassName();
             }
             return PaymentResponse::GetClassName();
         case MessageType::THREE_D_SECURE:
             if (self::IsRequest($xml)) {
                 return ThreeDSecureRequest::GetClassName();
             }
             return ThreeDSecureResponse::GetClassName();
     }
 }
 /**
  * {@inheritDoc}
  */
 public function responseFromXml($xml)
 {
     $response = new ThreeDSecureResponse();
     return $response->fromXml($xml);
 }
 /**
  * Check all fields match expected values.
  *
  * @param ThreeDSecureResponse $fromXmlResponse
  * @param PHPUnit_Framework_TestCase $testCase
  */
 public static function checkUnmarshalledThreeDSecureSigResponse(ThreeDSecureResponse $fromXmlResponse, PHPUnit_Framework_TestCase $testCase)
 {
     $testCase->assertEquals(self::ACCOUNT, $fromXmlResponse->getAccount());
     $testCase->assertEquals(self::MERCHANT_ID, $fromXmlResponse->getMerchantId());
     $testCase->assertEquals(self::THREE_D_SECURE_SIG_MESSAGE, $fromXmlResponse->getMessage());
     $testCase->assertEquals(self::ORDER_ID, $fromXmlResponse->getOrderId());
     $testCase->assertEquals(self::THREE_D_SECURE_SIG_RESULT, $fromXmlResponse->getResult());
     $testCase->assertEquals(self::THREE_D_SECURE_SIG_RESPONSE_HASH, $fromXmlResponse->getHash());
     $testCase->assertEquals(self::TIMESTAMP_RESPONSE, $fromXmlResponse->getTimeStamp());
     $testCase->assertEquals(self::THREE_D_SECURE_STATUS, $fromXmlResponse->getThreeDSecure()->getStatus());
     $testCase->assertEquals(self::THREE_D_SECURE_ECI, $fromXmlResponse->getThreeDSecure()->getEci());
     $testCase->assertEquals(self::THREE_D_SECURE_XID, $fromXmlResponse->getThreeDSecure()->getXid());
     $testCase->assertEquals(self::THREE_D_SECURE_CAVV, $fromXmlResponse->getThreeDSecure()->getCavv());
     $testCase->assertEquals(self::THREE_D_SECURE_ALGORITHM, $fromXmlResponse->getThreeDSecure()->getAlgorithm());
     $testCase->assertTrue($fromXmlResponse->isSuccess());
 }