public async Task<StripeResponse<Token>> CreateCardToken(CardTokenCreateArguments arguments,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     var request = new StripeRequest<CardTokenCreateArguments, Token>
     {
         UrlPath = Paths.Tokens,
         Model = arguments
     };
     return await _client.Post(request, cancellationToken);
 }
        public void CardTokenCreateArguments_DoesNotHaveRequiredFields()
        {
            // Arrange 
            _args = new CardTokenCreateArguments();

            // Act
            var keyValuePairs = StripeClient.GetModelKeyValuePairs(_args).ToList();

            // Assert
            keyValuePairs.Should().HaveCount(0);
        }
        public async Task CreateCardTokenTest()
        {
            // Arrange
            var args = new CardTokenCreateArguments();
            _stripe.Post(
                Arg.Is<StripeRequest<CardTokenCreateArguments, Token>>(a => a.UrlPath == "tokens" && a.Model == args),
                _cancellationToken).Returns(Task.FromResult(new StripeResponse<Token>()));

            // Act
            var response = await _client.CreateCardToken(args, _cancellationToken);

            // Assert
            response.Should().NotBeNull();
        }