public async Task CancelAsync_requests_proper_uri() { // arrange var expectedRequest = new PaymentCancellation { IamportId = Guid.NewGuid().ToString(), }; var expectedResult = new IamportResponse <Payment> { HttpStatusCode = HttpStatusCode.OK, Content = new Payment { IamportId = expectedRequest.IamportId, } }; var client = GetMockClient(expectedRequest, expectedResult); var sut = new PaymentsApi(client); // act var result = await sut.CancelAsync(expectedRequest); // assert Mock.Get(client) .Verify(mocked => mocked.RequestAsync <PaymentCancellation, Payment>( It.Is <IamportRequest <PaymentCancellation> >(req => req.ApiPathAndQueryString.EndsWith("payments/cancel")))); }
public async Task CancelAsync_throws_ValidationException(string iamportId, string transactionId) { // arrange var expectedRequest = new PaymentCancellation { IamportId = iamportId, TransactionId = transactionId, }; var expectedResult = new IamportResponse <Payment>(); var client = GetMockClient(expectedRequest, expectedResult); var sut = new PaymentsApi(client); // act/assert await Assert.ThrowsAsync <ValidationException>( () => sut.CancelAsync(expectedRequest)); }
public async Task CancelAsync_throws_IamportResponseException_when_response_code_is_not_success() { // arrange var expectedRequest = new PaymentCancellation { IamportId = Guid.NewGuid().ToString(), }; var expectedResult = new IamportResponse <Payment> { Code = -1, HttpStatusCode = HttpStatusCode.InternalServerError, }; var client = GetMockClient(expectedRequest, expectedResult); var sut = new PaymentsApi(client); // act/assert await Assert.ThrowsAsync <IamportResponseException>( () => sut.CancelAsync(expectedRequest)); }
public async Task CancelAsync_doesnt_accept_longer_than_4characters_of_RefundAccountBank() { // arrange var expectedRequest = new PaymentCancellation { IamportId = Guid.NewGuid().ToString(), RefundAccountBank = "ABCDE", }; var expectedResult = new IamportResponse <Payment> { Code = -1, HttpStatusCode = HttpStatusCode.InternalServerError, }; var client = GetMockClient(expectedRequest, expectedResult); var sut = new PaymentsApi(client); // act/assert await Assert.ThrowsAsync <ValidationException>( () => sut.CancelAsync(expectedRequest)); }
public async Task CancelPayment(Guid paymentId) { try { await _paymentsApi.CancelAsync(paymentId, null); } catch (ApiException <ErrorResponse> e) { var errorResponse = e.Result; Log.Error( "MobilePay CancelPayment failed with HTTP {StatusCode}. ErrorCode: {ErrorCode} Message: {Message} CorrelationId: {CorrelationId}", e.StatusCode, errorResponse.Code, errorResponse.Message, errorResponse.CorrelationId); // FIXME Consider retry throw new MobilePayApiException(e.StatusCode, errorResponse.Message, errorResponse.Code); } catch (ApiException apiException) { LogMobilePayException(apiException); throw new MobilePayApiException(apiException.StatusCode, apiException.Message); } }
public async Task CancelAsync_GuardClause() { var sut = new PaymentsApi(GetEmptyMockClient()); await Assert.ThrowsAsync <ArgumentNullException>( () => sut.CancelAsync(null)); }