/** * Denormalizes data back into an object of the given class. * * @param mixed $data data to restore * @param string $class the expected class to instantiate * @param string $format format the given data was extracted from * @param array $context options available to the denormalizer * * @return object */ public function denormalize($data, $class, $format = null, array $context = array()) { if (is_null($data)) { return null; } $data = new SafeArrayAccess($data); $dccInfo = new DccInfo(); $dccInfo->addDccProcessor($data['ccp'])->addType($data['type'])->addRate($data['rate'])->addRateType($data['ratetype']); $amount = $this->serializer->denormalize($data['amount'], Amount::GetClassName(), $format, $context); if ($amount != null) { $dccInfo->setAmount($amount); } return $dccInfo; }
/** * Tests the hash calculation for a card-update transaction. */ public function testDccStoredCard() { // add dccinfo. Note that the type is not set as it is already defaulted to 1 $dccInfo = new DccInfo(); $dccInfo->addDccProcessor(SampleXmlValidationUtils::STORED_CARD_DCC_RATE_DCC_CCP); $request = new PaymentRequest(); $request->addType(PaymentType::STORED_CARD_DCC_RATE)->addTimeStamp(SampleXmlValidationUtils::STORED_CARD_DCC_RATE_TIMESTAMP)->addMerchantId(SampleXmlValidationUtils::STORED_CARD_DCC_RATE_MERCHANT_ID)->addAmount(SampleXmlValidationUtils::STORED_CARD_DCC_RATE_AMOUNT)->addCurrency(SampleXmlValidationUtils::STORED_CARD_DCC_RATE_CURRENCY)->addOrderId(SampleXmlValidationUtils::STORED_CARD_DCC_RATE_ORDER_ID)->addDccInfo($dccInfo); $this->assertEquals(SampleXmlValidationUtils::STORED_CARD_DCC_RATE, $request->getType()); }
/** * Tests conversion of {@link PaymentRequest} to and from XML using setters for DCCInfo. */ public function testPaymentRequestXmlDCCInfoFluentSetters() { $request = new PaymentRequest(); $request->addAccount(SampleXmlValidationUtils::DCC_RATE_ACCOUNT)->addMerchantId(SampleXmlValidationUtils::DCC_RATE_MERCHANT_ID)->addType(PaymentType::DCC_RATE_LOOKUP); $card = new Card(); $card->addExpiryDate(SampleXmlValidationUtils::DCC_RATE_CARD_EXPIRY_DATE)->addNumber(SampleXmlValidationUtils::DCC_RATE_CARD_NUMBER)->addType(SampleXmlValidationUtils::DCC_RATE_CARD_TYPE)->addCardHolderName(SampleXmlValidationUtils::DCC_RATE_CARD_HOLDER_NAME); $request->addCard($card); $dccInfo = new DccInfo(); $dccInfo->addDccProcessor(SampleXmlValidationUtils::DCC_RATE_CCP); $request->addDccInfo($dccInfo); $request->addAmount(SampleXmlValidationUtils::DCC_RATE_AMOUNT)->addCurrency(SampleXmlValidationUtils::DCC_RATE_CURRENCY); $autoSettle = new AutoSettle(); $autoSettle->addFlag(SampleXmlValidationUtils::$AUTO_SETTLE_FLAG->getFlag()); $request->addAutoSettle($autoSettle)->addTimeStamp(SampleXmlValidationUtils::DCC_RATE_TIMESTAMP)->addOrderId(SampleXmlValidationUtils::DCC_RATE_ORDER_ID)->addHash(SampleXmlValidationUtils::DCC_RATE_REQUEST_HASH); // convert to XML $xml = $request->toXml(); // Convert from XML back to PaymentRequest /* @var PaymentRequest $fromXmlRequest */ $fromXmlRequest = new PaymentRequest(); $fromXmlRequest = $fromXmlRequest->fromXml($xml); SampleXmlValidationUtils::checkUnmarshalledDccRateLookUpPaymentRequest($fromXmlRequest, $this); }