Exemplo n.º 1
0
        public void CreateSale_Send_DebitCardTransaction_Return_Valid_Reponse()
        {
            var validDebitCardSaleResponse = ValidCreateSaleResponse(CardTransactionHelper.CreateDebitCardPaymentResponse());

            _mockRestClient.Setup(m => m.Execute <Sale>(It.IsAny <IRestRequest>())).Returns(new RestResponse <Sale>()
            {
                StatusCode = HttpStatusCode.Created,
                Content    = new JsonSerializer().Serialize(validDebitCardSaleResponse),
                Data       = validDebitCardSaleResponse
            });

            var response = _service.CreateSale(MerchantAuthenticationHelper.CreateMerchantAuthentication(), SaleHelper.CreateOrder(CardTransactionHelper.CreateDebitCardPaymentRequest()));

            response.Should().NotBeNull();
            response.MerchantOrderId.Should().NotBeEmpty();
            response.Customer.Should().NotBeNull();
            response.Customer.Address.Should().NotBeNull();
            response.Payment.Should().NotBeNull();
            response.Payment.ExtraDataCollection.Should().BeNull();
            response.Payment.Links.Should().NotBeNull();

            response.Customer.Address.City.Should().Be(CustomerHelper.CreateCustomer().Address.City);
            response.Customer.Address.Complement.Should().Be(CustomerHelper.CreateCustomer().Address.Complement);
            response.Customer.Address.Country.Should().Be(CustomerHelper.CreateCustomer().Address.Country);
            response.Customer.Address.District.Should().Be(CustomerHelper.CreateCustomer().Address.District);
            response.Customer.Address.Number.Should().Be(CustomerHelper.CreateCustomer().Address.Number);
            response.Customer.Address.State.Should().Be(CustomerHelper.CreateCustomer().Address.State);
            response.Customer.Address.Street.Should().Be(CustomerHelper.CreateCustomer().Address.Street);
            response.Customer.Address.ZipCode.Should().Be(CustomerHelper.CreateCustomer().Address.ZipCode);

            response.Customer.Birthdate.Should().NotBe(new DateTime());
            response.Customer.Email.Should().Be(CustomerHelper.CreateCustomer().Email);
            response.Customer.Identity.Should().Be(CustomerHelper.CreateCustomer().Identity);
            response.Customer.IdentityType.Should().Be(CustomerHelper.CreateCustomer().IdentityType);
            response.Customer.Name.Should().Be(CustomerHelper.CreateCustomer().Name);

            response.Payment.Amount.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Amount);
            response.Payment.CapturedAmount.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().CapturedAmount);
            response.Payment.Provider.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Provider);
            response.Payment.Country.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Country);
            response.Payment.Credentials.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Credentials);
            response.Payment.Currency.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Currency);
            response.Payment.ReasonCode.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().ReasonCode);
            response.Payment.ReasonMessage.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().ReasonMessage);
            response.Payment.ReturnUrl.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().ReturnUrl);
            response.Payment.Status.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Status);
            response.Payment.Type.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().Type);
            response.Payment.VoidedAmount.Should().Be(CardTransactionHelper.CreateDebitCardPaymentResponse().VoidedAmount);
        }
        public void VerifyCard_WhenHttpStatusCodeEqualsTo0_ReturnsMappedErrorResponse()
        {
            var restResponse = new RestResponse
            {
                StatusCode     = 0,
                ErrorException = new Exception("Test exception"),
                ErrorMessage   = "Undefined Error"
            };

            _mockRestClient.Setup(m => m.Execute(It.IsAny <IRestRequest>())).Returns(restResponse);

            var response = _verifyCardService.VerifyCard(MerchantAuthenticationHelper.CreateMerchantAuthentication(), VerifyCardHelper.ValidVerifyCardRequest());

            response.Should().NotBeNull();
            Assert.AreEqual(response.HttpStatus, restResponse.StatusCode);
            response.ErrorDataCollection.Should().NotBeNull();
            response.ErrorDataCollection[0].Code.Should().Be(-1);
            response.ErrorDataCollection[0].Message.Should().Be("ErrorMessage: Undefined Error | ErrorException: System.Exception: Test exception");
        }
Exemplo n.º 3
0
        public void CreateSale_Send_CreditCardTransaction_Return_Error_Reponse()
        {
            var validCreditCardSaleResponse = ErrorCreateSaleResponse();

            _mockRestClient.Setup(m => m.Execute <Sale>(It.IsAny <IRestRequest>())).Returns(new RestResponse <Sale>()
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content    = new JsonSerializer().Serialize(validCreditCardSaleResponse),
                Data       = validCreditCardSaleResponse
            });

            var response = _service.CreateSale(MerchantAuthenticationHelper.CreateMerchantAuthentication(), SaleHelper.CreateOrder(CardTransactionHelper.CreateCreditCardPaymentRequest()));

            response.Should().NotBeNull();
            response.MerchantOrderId.Should().BeNullOrEmpty();
            response.Customer.Should().BeNull();
            response.Payment.Should().BeNull();
            response.HttpStatus.Should().Be(HttpStatusCode.BadRequest);
            response.ErrorDataCollection.Count.Should().BeGreaterThan(0);
        }
        public void CaptureSale_Capture_Valid_Transaction()
        {
            var validCreditCardCaptureResponse = ValidCaptureSaleResponse();

            _mockRestClient.Setup(m => m.Execute <CaptureResponse>(It.IsAny <IRestRequest>())).Returns(new RestResponse <CaptureResponse>()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new JsonSerializer().Serialize(validCreditCardCaptureResponse),
                Data       = validCreditCardCaptureResponse
            });

            var response = _service.Capture(Guid.NewGuid(), MerchantAuthenticationHelper.CreateMerchantAuthentication(), CaptureTransationHelper.CreateValidCaptureRequest());

            response.ErrorDataCollection.Should().BeNull();
            response.HttpStatus.Should().Be(HttpStatusCode.OK);
            response.ReasonCode.Should().Be(0);
            response.ReasonMessage.Should().Be("Successful");
            response.Status.Should().Be(10);
            response.Links.Count.Should().BeGreaterThan(0);
        }
Exemplo n.º 5
0
        public void CreateSale_Send_Corrrectly_ApiService()
        {
            var validCreditCardSaleResponse = ValidCreateSaleResponse(CardTransactionHelper.CreateCreditCardPaymentResponse());

            _mockRestClient.Setup(m => m.Execute <Sale>(It.IsAny <IRestRequest>())).Returns(new RestResponse <Sale>()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new JsonSerializer().Serialize(validCreditCardSaleResponse),
                Data       = validCreditCardSaleResponse
            });

            _service.CreateSale(MerchantAuthenticationHelper.CreateMerchantAuthentication(), SaleHelper.CreateOrder(CardTransactionHelper.CreateCreditCardPaymentRequest()));

            _mockRestClient.Verify(m => m.Execute <Sale>(It.IsAny <RestRequest>()), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Method == Method.POST)), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Resource == @"sales")), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Parameters.Any(
                                                                                 param => param.Type == ParameterType.RequestBody && param.Name == @"application/json"))), Times.Once);
        }
Exemplo n.º 6
0
        public void CreateSale_WhenHttpStatusCodeEqualsTo0_ReturnsMappedErrorResponse()
        {
            var restResponse = new RestResponse <Sale>
            {
                StatusCode     = 0,
                ErrorException = new Exception("Exceção de teste"),
                ErrorMessage   = "Undefined Error"
            };

            _mockRestClient.Setup(m => m.Execute <Sale>(It.IsAny <IRestRequest>())).Returns(restResponse);

            var response = _service.CreateSale(MerchantAuthenticationHelper.CreateMerchantAuthentication(), SaleHelper.CreateOrder(CardTransactionHelper.CreateCreditCardPaymentRequest()));

            response.Should().NotBeNull();
            response.MerchantOrderId.Should().BeNullOrEmpty();
            response.Customer.Should().BeNull();
            response.Payment.Should().BeNull();
            Assert.AreEqual(response.HttpStatus, restResponse.StatusCode);
            response.ErrorDataCollection.Should().NotBeNull();
            response.ErrorDataCollection[0].Code.Should().Be(-1);
            response.ErrorDataCollection[0].Message.Should().Be("ErrorMessage: Undefined Error | ErrorException: System.Exception: Exceção de teste");
        }
        public void CreateSale_WhenRequestContainsCustomHeaders_ShouldSendToApiServiceWithCorrecltyHeaders()
        {
            var validCreditCardSaleResponse = ValidCreateSaleResponse(CardTransactionHelper.CreateCreditCardPaymentResponse());

            _mockRestClient.Setup(m => m.Execute <Sale>(It.IsAny <IRestRequest>())).Returns(new RestResponse <Sale>()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new JsonSerializer().Serialize(validCreditCardSaleResponse),
                Data       = validCreditCardSaleResponse
            });

            _service.CreateSale(MerchantAuthenticationHelper.CreateMerchantAuthentication(),
                                SaleHelper.CreateOrder(CardTransactionHelper.CreateCreditCardPaymentRequest()),
                                new Dictionary <string, string>
            {
                { "CustomHeader1", "HeaderValid1" },
                { "CustomHeader2", "HeaderValid2" },
                { "CustomHeader3", "HeaderValid3" }
            });

            _mockRestClient.Verify(m => m.Execute <Sale>(It.IsAny <RestRequest>()), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Method == Method.POST)), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Resource == @"sales")), Times.Once);

            _mockRestClient.Verify
                (m => m.Execute <Sale>(
                    It.Is <RestRequest>(
                        request => request.Parameters[3].Name == "CustomHeader1" &&
                        request.Parameters[3].Value == "HeaderValid1" &&
                        request.Parameters[4].Name == "CustomHeader2" &&
                        request.Parameters[4].Value == "HeaderValid2" &&
                        request.Parameters[5].Name == "CustomHeader3" &&
                        request.Parameters[5].Value == "HeaderValid3")
                    ), Times.Once);
        }
Exemplo n.º 8
0
        public void GetSale_Send_Corrrectly_ApiService()
        {
            var paymentId = Guid.NewGuid();

            var validGetSaleResponse = ValidGetSaleResponse();

            _mockRestClient.Setup(m => m.Execute <Sale>(It.IsAny <IRestRequest>())).Returns(new RestResponse <Sale>()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new JsonSerializer().Serialize(validGetSaleResponse),
                Data       = validGetSaleResponse
            });

            _service.Get(paymentId, MerchantAuthenticationHelper.CreateMerchantAuthentication());

            _mockRestClient.Verify(m => m.Execute <Sale>(It.IsAny <RestRequest>()), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Method == Method.GET)), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Resource == @"sales/{paymentId}")), Times.Once);

            _mockRestClient.Verify(m => m.Execute <Sale>(It.Is <RestRequest>(request => request.Parameters.Any(
                                                                                 param => param.Type == ParameterType.UrlSegment && param.Name == "paymentId" && param.Value.ToString() == paymentId.ToString()))), Times.Once);
        }