/** * 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; } $this->format = $format; $this->context = $context; $data = new SafeArrayAccess($data); $payer = new Payer(); $payer->addType($data['@type'])->addRef($data['@ref'])->addTitle($data['title'])->addFirstName($data['firstname'])->addSurname($data['surname'])->addCompany($data['company'])->addAddress($this->denormaliseAddress($data))->addEmail($data['email']); $payer->setPhoneNumbers($this->denormalisePhoneNumbers($data)); $payer->setComments($this->denormaliseComments($data)); return $payer; }
/** * Tests conversion of {@link PaymentRequest} to and from XML using setters for Payer. */ public function testPaymentRequestXmlPayerFluentSetters() { $request = new PaymentRequest(); $request->addAccount(SampleXmlValidationUtils::PAYER_NEW_ACCOUNT)->addMerchantId(SampleXmlValidationUtils::PAYER_NEW_MERCHANT_ID)->addType(PaymentType::PAYER_NEW); $payer = new Payer(); $payer->addType(SampleXmlValidationUtils::PAYER_NEW_PAYER_TYPE)->addRef(SampleXmlValidationUtils::PAYER_NEW_PAYER_REF)->addTitle(SampleXmlValidationUtils::PAYER_NEW_PAYER_TITLE)->addFirstName(SampleXmlValidationUtils::PAYER_NEW_PAYER_FIRSTNAME)->addSurname(SampleXmlValidationUtils::PAYER_NEW_PAYER_SURNAME)->addCompany(SampleXmlValidationUtils::PAYER_NEW_PAYER_COMPANY)->addEmail(SampleXmlValidationUtils::PAYER_NEW_PAYER_EMAIL); $address = new PayerAddress(); $address->addLine1(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_LINE_1)->addLine2(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_LINE_2)->addLine3(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_LINE_3)->addCity(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_CITY)->addCounty(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_COUNTY)->addPostcode(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_POSTCODE)->addCountryCode(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_COUNTRY_CODE)->addCountryName(SampleXmlValidationUtils::PAYER_NEW_PAYER_ADDRESS_COUNTRY_NAME); $payer->addAddress($address)->addComment(SampleXmlValidationUtils::PAYER_NEW_PAYER_COMMENT_1)->addComment(SampleXmlValidationUtils::PAYER_NEW_PAYER_COMMENT_2)->addHomePhoneNumber(SampleXmlValidationUtils::PAYER_NEW_PAYER_HOME_NUMBER)->addWorkPhoneNumber(SampleXmlValidationUtils::PAYER_NEW_PAYER_WORK_NUMBER)->addFaxPhoneNumber(SampleXmlValidationUtils::PAYER_NEW_PAYER_FAX_NUMBER)->addMobilePhoneNumber(SampleXmlValidationUtils::PAYER_NEW_PAYER_MOBILE_NUMBER); $request->addPayer($payer)->addTimeStamp(SampleXmlValidationUtils::PAYER_NEW_TIMESTAMP)->addOrderId(SampleXmlValidationUtils::PAYER_NEW_ORDER_ID)->addHash(SampleXmlValidationUtils::PAYER_NEW_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::checkUnmarshalledPayerNewPaymentRequest($fromXmlRequest, $this); }