Esempio n. 1
0
        public async Task DoDirectPaymentAsync_throws_ValidationException(
            decimal amount,
            string transactionId,
            string cardNumber,
            string expiry,
            string authentication,
            string partialPassword)
        {
            // arrange
            var aRequest = new DirectPaymentRequest
            {
                Amount               = amount,
                TransactionId        = transactionId,
                AuthenticationNumber = authentication,
                CardNumber           = cardNumber,
                Expiry               = expiry,
                PartialPassword      = partialPassword,
            };
            var client = Mock.Of <IIamportClient>();
            var sut    = new SubscribeApi(client);

            // act/assert
            await Assert.ThrowsAsync <ValidationException>(
                () => sut.DoDirectPaymentAsync(aRequest));
        }
Esempio n. 2
0
        public async Task DoDirectPaymentAsync_by_customerId_requests_proper_api()
        {
            // arrange
            var aRequest = new CustomerDirectPaymentRequest
            {
                Amount        = 1024,
                TransactionId = Guid.NewGuid().ToString(),
                CustomerId    = Guid.NewGuid().ToString(),
            };
            var expectedResult = new IamportResponse <Payment>
            {
                HttpStatusCode = HttpStatusCode.OK,
                Content        = new Payment
                {
                    TransactionId = aRequest.TransactionId,
                    Amount        = aRequest.Amount,
                }
            };
            var client = GetMockClient(aRequest, expectedResult);
            var sut    = new SubscribeApi(client);

            // act
            var result = await sut.DoDirectPaymentAsync(aRequest);

            // assert
            Mock.Get(client)
            .Verify(mocked =>
                    mocked.RequestAsync <CustomerDirectPaymentRequest, Payment>(
                        It.Is <IamportRequest <CustomerDirectPaymentRequest> >(req =>
                                                                               req.Method == HttpMethod.Post &&
                                                                               req.Content == aRequest &&
                                                                               req.ApiPathAndQueryString.EndsWith($"subscribe/payments/again"))));
        }
Esempio n. 3
0
        public async Task DoDirectPaymentAsync_by_customerId_throws_ValidationException(
            decimal amount,
            string transactionId,
            string customerId)
        {
            // arrange
            var aRequest = new CustomerDirectPaymentRequest
            {
                Amount        = amount,
                TransactionId = transactionId,
                CustomerId    = customerId,
            };
            var client = Mock.Of <IIamportClient>();
            var sut    = new SubscribeApi(client);

            // act/assert
            await Assert.ThrowsAsync <ValidationException>(
                () => sut.DoDirectPaymentAsync(aRequest));
        }
Esempio n. 4
0
        public async Task DoDirectPaymentAsync_requests_proper_api()
        {
            // arrange
            var aRequest = new DirectPaymentRequest
            {
                Amount               = 1024,
                TransactionId        = Guid.NewGuid().ToString(),
                AuthenticationNumber = "123456",
                CardNumber           = "1234-1234-1234-1234",
                Expiry               = "2200-12",
                PartialPassword      = "******",
            };
            var expectedResult = new IamportResponse <Payment>
            {
                HttpStatusCode = HttpStatusCode.OK,
                Content        = new Payment
                {
                    TransactionId = aRequest.TransactionId,
                    Amount        = aRequest.Amount,
                }
            };
            var client = GetMockClient(aRequest, expectedResult);
            var sut    = new SubscribeApi(client);

            // act
            var result = await sut.DoDirectPaymentAsync(aRequest);

            // assert
            Mock.Get(client)
            .Verify(mocked =>
                    mocked.RequestAsync <DirectPaymentRequest, Payment>(
                        It.Is <IamportRequest <DirectPaymentRequest> >(req =>
                                                                       req.Method == HttpMethod.Post &&
                                                                       req.Content == aRequest &&
                                                                       req.ApiPathAndQueryString.EndsWith($"subscribe/payments/onetime"))));
        }
Esempio n. 5
0
 public async Task DoDirectPaymentAsync_again_GuardClause()
 {
     var sut = new SubscribeApi(GetEmptyMockClient());
     await Assert.ThrowsAsync <ArgumentNullException>(
         () => sut.DoDirectPaymentAsync((CustomerDirectPaymentRequest)null));
 }