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);
        }
Пример #5
0
 /// <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));
 }