/**
  *
  * 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));
 }
Exemple #2
0
 /**
  * @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);
 }