public async Task GetUserPaymentRequestsAsync_ExpectedResult_VerifiesCall_NoOptionalParameters() { // Arrange var userPaymentRequest = new UserPaymentRequest() { PlatformToken = "PlatformToken", UserToken = "UserToken", Limit = 100, Offset = 1 }; var expectedResult = new UserPaymentResponse(); var expectedCall = $"{UrlProvider.GetUserPaymentsUrlSuffix(userPaymentRequest.PlatformToken, userPaymentRequest.UserToken)}?offset={userPaymentRequest.Offset}&limit={userPaymentRequest.Limit}"; _mockAuthorizedRequestsHandler .Setup(m => m.GetOrExceptionAsync <UserPaymentResponse>(expectedCall)) .ReturnsAsync(expectedResult) .Verifiable(); var sut = CreateSut(); // Act var result = await sut.GetUserPaymentRequestsAsync(userPaymentRequest); // Assert Assert.IsNotNull(result); Assert.AreEqual(expectedResult, result); _mockAuthorizedRequestsHandler .Verify(m => m.GetOrExceptionAsync <UserPaymentResponse>(expectedCall), Times.Once); }
/// <summary> /// Gets query string from the <see cref="UserPaymentRequest"/>. /// </summary> /// <param name="request">The UserPaymentRequest object</param> /// <returns>A string with a combination of mandatory and optional parameters.</returns> private string GetUserPaymentRequestQueryString(UserPaymentRequest request) { var optionalQueryStringBuilder = new StringBuilder(); AppendParameterIfNotNullOrEmpty(optionalQueryStringBuilder, "fromDate", request.FromDateString); AppendParameterIfNotNullOrEmpty(optionalQueryStringBuilder, "toDate", request.ToDateString); return($"?offset={request.Offset}&limit={request.Limit}{optionalQueryStringBuilder.ToString()}"); }
/// <summary> /// Gets all the Payment Requests from an existing user using HTTP GET. /// </summary> /// <param name="request">The UserPaymentRequest object</param> /// <returns>The UserPaymentResponse object</returns> /// <exception cref="ArgumentNullException">If the UserPaymentRequest object is null</exception> /// <exception cref="TikkieErrorResponseException">If the Tikkie API returns an error response.</exception> public async Task <UserPaymentResponse> GetUserPaymentRequestsAsync(UserPaymentRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var queryString = GetUserPaymentRequestQueryString(request); return(await _authorizedRequestsHandler .GetOrExceptionAsync <UserPaymentResponse>($"{UrlProvider.GetUserPaymentsUrlSuffix(request.PlatformToken, request.UserToken)}{queryString}")); }
public async Task GetUserPaymentRequestsAsync_ExpectedResponse_VerifiesCall() { // Arrange var userPaymentRequest = new UserPaymentRequest(); var expectedResult = new UserPaymentResponse(); var mockPaymentRequestsHandler = new Mock <IPaymentRequestsHandler>(); mockPaymentRequestsHandler .Setup(m => m.GetUserPaymentRequestsAsync(userPaymentRequest)) .ReturnsAsync(expectedResult) .Verifiable(); var sut = new TikkieClient(Mock.Of <IPlatformRequestsHandler>(), Mock.Of <IUserRequestsHandler>(), mockPaymentRequestsHandler.Object); // Act var result = await sut.GetUserPaymentRequestsAsync(userPaymentRequest); // Assert Assert.IsNotNull(result); Assert.AreEqual(expectedResult, result); mockPaymentRequestsHandler .Verify(m => m.GetUserPaymentRequestsAsync(userPaymentRequest), Times.Once); }
/// <summary> /// Gets all the Payment Requests from an existing user using HTTP GET. /// </summary> /// <param name="request">The UserPaymentRequest object</param> /// <returns>The UserPaymentResponse object</returns> /// <exception cref="ArgumentNullException">If the UserPaymentRequest object is null</exception> /// <exception cref="TikkieErrorResponseException">If the Tikkie API returns an error response.</exception> public async Task <UserPaymentResponse> GetUserPaymentRequestsAsync(UserPaymentRequest request) { return(await _paymentRequestsHandler.GetUserPaymentRequestsAsync(request)); }