/** * */ public function testFromJsonHppRequestUnknownData() { $path = SampleJsonData::UNKNOWN_DATA_HPP_REQUEST_JSON_PATH; $prefix = __DIR__ . '/../../../resources'; $json = file_get_contents($prefix . $path); $hppRequestExpected = SampleJsonData::generateValidHppRequest(false); $hppRequestConverted = JsonUtils::fromJsonHppRequest($json); SampleJsonData::checkValidHppRequest($hppRequestExpected, $hppRequestConverted, true, $this); SampleJsonData::checkValidHppRequestSupplementaryData($hppRequestConverted, $this); }
/** * Test converting {@link HppRequest} to JSON. * Testing import from json, decode and encode */ public function testToJsonHppRequestWithHppVersion() { $path = SampleJsonData::VALID_HPP_REQUEST_HPP_VERSION_JSON_PATH; $prefix = __DIR__ . '/../../../resources'; $json = file_get_contents($prefix . $path); /** * @var HppRequest $hppRequestConverted */ $hppRequestConverted = JsonUtils::fromJsonHppRequest($json); $this->assertEquals(SampleJsonData::HPP_VERSION, $hppRequestConverted->getHppVersion()); $this->assertEquals(SampleJsonData::HPP_SELECT_STORED_CARD, $hppRequestConverted->getHppSelectStoredCard()); $hppRequestConverted = $hppRequestConverted->encode(RealexHpp::ENCODING_CHARSET); $hppRequestConverted = $hppRequestConverted->decode(RealexHpp::ENCODING_CHARSET); $this->assertEquals(SampleJsonData::HPP_VERSION, $hppRequestConverted->getHppVersion()); $this->assertEquals(SampleJsonData::HPP_SELECT_STORED_CARD, $hppRequestConverted->getHppSelectStoredCard()); }
/** * Test validation post dimensions fails */ public function testValidationPassedSuccess() { $path = SampleJsonData::VALID_HPP_REQUEST_HPP_POST_BOTH_JSON_PATH; $prefix = __DIR__ . '/../../../resources'; $json = file_get_contents($prefix . $path); $hppRequestConverted = JsonUtils::fromJsonHppRequest($json); $hppRequestConverted->generateDefaults(SampleJsonData::SECRET); try { ValidationUtils::validate($hppRequestConverted); } catch (RealexValidationException $e) { $this->fail("This HppRequest shouldn't have validation errors."); } }
/** * <p> * Method produces <code>HppRequest</code> object from JSON. * Carries out the following actions: * <ul> * <li>Deserialises JSON to request object</li> * <li>Decodes Base64 inputs</li> * <li>Validates inputs</li> * </ul> * </p> * * @param string $json * @param bool $encoded <code>true</code> if the JSON values have been encoded. * @return HppRequest */ public function requestFromJson($json, $encoded = true) { $this->logger->info("Converting JSON to HppRequest."); //convert to HppRequest from JSON $hppRequest = JsonUtils::fromJsonHppRequest($json); //decode if necessary if ($encoded) { $this->logger->debug("Decoding object."); try { $hppRequest = $hppRequest->decode(self::ENCODING_CHARSET); } catch (Exception $e) { $this->logger->error("Exception encoding HPP request.", $e); throw new RealexException("Exception decoding HPP request.", $e); } } //validate HPP request $this->logger->debug("Validating request."); ValidationUtils::validate($hppRequest); return $hppRequest; }