/** * * Provide test coverage for major methods, some simple method are knowingly skipped. * * @param string $operation * @param string $apiKeySecret * @param array $httpHeaders * @param string $rawResponseData * @param bool $expectedSignatureValidation * * @dataProvider providerSignatureValidation */ public function testSignatureValidation($operation, $apiKeySecret, $httpHeaders, $rawResponseData, $expectedSignatureValidation) { $resp = new Raven\Response($operation, $httpHeaders, $rawResponseData); if (!preg_match("/payments|events/", $resp->getOperation())) { $this->assertFalse($resp->has('report')); } else { $this->assertStringStartsWith("RavenPaymentFile_v1.0", $resp->get('report')); } $this->assertEquals($expectedSignatureValidation, $resp->validateSignature($apiKeySecret)); }
/** * @param Request $request * @return Response * @throws Exceptions\ResponseException * @throws Exceptions\SignatureException */ public function send(Request $request) { $request->setApiKeyId($this->accessKeyId); $request->setSignature($this->accessKeySecret); //Call Httpclient with request list($httpResponseHeader, $rawResponseData) = $this->makeHttpClientCall($request); if ($httpResponseHeader['status'] != 200) { throw new Exceptions\ResponseException($httpResponseHeader['reason'], $httpResponseHeader['status']); } $response = new Response($request->getOperation(), $httpResponseHeader, $rawResponseData); if (!$response->validateSignature($this->accessKeySecret)) { throw new Exceptions\SignatureException(sprintf(ExceptionMessages::INVALID_SIGNATURE, json_encode($response->getSignatureViladtionResults()))); } return $response; }
/** * Get Payment Status * * @param Response $paymentResponse * @throws Exceptions\ResponseException * @throws Exceptions\SignatureException */ public function paymentStatusExample(Response $paymentResponse) { //Use the PaymentResp member set by SubmitPaymentExample $statusReq = new Request('status', ['TrackingNumber' => $paymentResponse->get('TrackingNumber')]); $statusResp = $this->rvn->send($statusReq); $this->assertEquals('Voided', $statusResp->get('status')); //Echo output $this->echoOutput($statusReq, $statusResp); }