public void CanProcessRequestOk() { var refundResponse = "{\r\n \"refundId\": \"S01-5105180-3221187-R022311\",\r\n \"chargeId\": \"S01-5105180-3221187-C056351\",\r\n \"refundAmount\": {\r\n \"amount\": \"14.00\",\r\n \"currencyCode\": \"USD\"\r\n },\r\n \"softDescriptor\": \"Descriptor\",\r\n \"creationTimestamp\": \"20190714T155300Z\",\r\n \"statusDetails\": {\r\n \"state\": \"RefundInitiated\",\r\n \"reasonCode\": null,\r\n \"reasonDescription\": null,\r\n \"lastUpdatedTimestamp\": \"20190714T155300Z\"\r\n },\r\n \"releaseEnvironment\": \"Sandbox\"\r\n}"; var mockTestClient = new Mock <TestClient>(payConfig) { CallBase = true }; mockTestClient.Protected().As <ITestClientMapping>() .Setup(c => c.SendRequest(It.IsAny <ApiRequest>(), It.IsAny <Dictionary <string, string> >())) .Returns((ApiRequest request, Dictionary <string, string> postSignedHeaders) => AssertPreSendRequestFlow(request, postSignedHeaders, HttpStatusCode.OK, refundResponse)); var testRequest = new Amazon.Pay.API.InStore.Refund.CreateRefundRequest("123456789", 10, Currency.USD, "referenceID"); var apiUrlBuilder = new ApiUrlBuilder(payConfig); var apiPath = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.InStore.Refund); var apiRequest = new ApiRequest(apiPath, HttpMethod.POST, testRequest, null); var result = mockTestClient.Object.Invoke <RefundResponse>(apiRequest, new Dictionary <string, string>()); Assert.NotNull(result); Assert.AreEqual(refundResponse, result.RawResponse); Assert.AreEqual(testRequest.ToJson(), result.RawRequest); Assert.AreEqual("S01-5105180-3221187-R022311", result.RefundId); Assert.AreEqual(true, result.Success); Assert.NotNull(result.RequestId); Assert.AreEqual(0, result.Retries); Assert.AreEqual(HttpMethod.POST, result.Method); Assert.AreEqual(apiPath, result.Url); Assert.True(result.Duration > 0); }
public void GetFullPathForInStoreApiService() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/sandbox/v2/in-store/merchantScan/"); // act Uri actualURL = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.InStore, Constants.Resources.InStore.MerchantScan); // assert Assert.AreEqual(expectedURL, actualURL); }
// Generic method used to verify Unified Endpoint Full Path public void VerifyUnifiedEndpointFullPath(Region region, string publicKeyId, string url, string apiService, string resource) { // Configuration payConfig.Region = region; payConfig.PublicKeyId = publicKeyId; apiUrlBuilder = new ApiUrlBuilder(payConfig); // Building URL Uri expectedURL = new Uri(url); Uri actualURL = apiUrlBuilder.BuildFullApiPath(apiService, resource); // Assertion Assert.AreEqual(expectedURL, actualURL); }
public void GetFullPathForTokenExchangeApi() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/sandbox/v2/authorizationTokens/"); // act Uri actualURL = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.TokenExchange); // assert Assert.AreEqual(expectedURL, actualURL); }
public void GetFullPathForDeliveryTrackerApiService() { // arrange payConfig.Region = Region.UnitedStates; payConfig.Environment = Environment.Sandbox; apiUrlBuilder = new ApiUrlBuilder(payConfig); Uri expectedURL = new Uri("https://pay-api.amazon.com/sandbox/v1/deliveryTrackers/"); // act Uri actualURL = apiUrlBuilder.BuildFullApiPath(Constants.ApiServices.Default, Constants.Resources.DeliveryTracker); // assert Assert.AreEqual(expectedURL, actualURL); }