public async Task CreateLinkAjaPayment_ReturnsSuccess() { var danaExternId = "Test:EWallet-LinkAja:1234:ExternId"; var connectionMock = new Mock<IXenditHttpConnection>(); connectionMock .Setup(c => c.SendRequestBodyAsync<XenditBaseRequest, XenditEWalletCreatePaymentResponse>( It.IsAny<Method>(), It.IsAny<string>(), It.IsAny<XenditBaseRequest>())) .ReturnsAsync(new XenditEWalletCreatePaymentResponse()); var eWalletClient = new XenditEWalletClient(connectionMock.Object); var linkAja = new XenditEWalletCreateLinkAjaPaymentRequest { ExternalId = danaExternId, }; var eWalletPayment = await eWalletClient.CreateLinkAjaPaymentAsync(linkAja); connectionMock.Verify(c => c.SendRequestBodyAsync<XenditEWalletCreateLinkAjaPaymentRequest, XenditEWalletCreatePaymentResponse>( Method.POST, "/ewallets", linkAja), Times.Once); }
public async Task GetPaymentStatus_ReturnsSuccess() { var paymentExternId = "Test:EWallet:1234:ExternId"; var eWalletType = XenditEWalletType.OVO; var connectionMock = new Mock<IXenditHttpConnection>(); connectionMock .Setup(c => c.SendRequestAsync<XenditEWalletCreatePaymentResponse>( It.IsAny<Method>(), It.IsAny<string>())) .ReturnsAsync(new XenditEWalletCreatePaymentResponse()); var eWalletClient = new XenditEWalletClient(connectionMock.Object); var paymentStatus = await eWalletClient.GetPaymentStatusAsync(paymentExternId, eWalletType); connectionMock.Verify(c => c.SendRequestAsync<XenditEWalletCreatePaymentResponse>( Method.GET, $"/ewallets?external_id={paymentExternId}&ewallet_type={eWalletType}"), Times.Once); }
public async Task CreateOvoPayment_ReturnsSuccess(string apiVersion) { var ovoExternId = "Test:EWallet-OVO:1234:ExternId"; var connectionMock = new Mock<IXenditHttpConnection>(); connectionMock .Setup(c => c.SendRequestBodyAsync<XenditBaseRequest, XenditEWalletCreatePaymentResponse>( It.IsAny<Method>(), It.IsAny<string>(), It.IsAny<XenditBaseRequest>())) .ReturnsAsync(new XenditEWalletCreatePaymentResponse()); var eWalletClient = new XenditEWalletClient(connectionMock.Object); // Difference semantic between null and empty string for header. var expectedRequestHeader = new Dictionary<string, string>(); if (apiVersion != null) { expectedRequestHeader.Add("X-API-VERSION", apiVersion); } var ovo = new XenditEWalletCreateOvoPaymentRequest { ApiVersion = apiVersion, ExternalId = ovoExternId, }; var eWalletPayment = await eWalletClient.CreateOvoPaymentAsync(ovo); connectionMock.Verify(c => c.SendRequestBodyAsync<XenditEWalletCreateOvoPaymentRequest, XenditEWalletCreatePaymentResponse>( Method.POST, "/ewallets", expectedRequestHeader, ovo), Times.Once); }