コード例 #1
0
        public static void SetReservedProviderInfoForTests(TestContext testContext)
        {
            ADMIN_USER = new User("Brulu", ADMIN_USER_USEREMAIL, "HOLA1234", AdminRole.GetInstance());
            List <IField> emptyFields = new List <IField>();
            TextField     field       = new TextField("NumeroCliente");

            emptyFields.Add(field);
            DESIGNED_PROVIDER = new Provider("Apple", 3, emptyFields);
            ProvidersController providerController = new ProvidersController(ADMIN_USER.Email);

            providerController.PostProvider(DESIGNED_PROVIDER);
            IHttpActionResult actionResultProvider = providerController.GetProviders();
            OkNegotiatedContentResult <IEnumerable <Provider> > contentResult = (OkNegotiatedContentResult <IEnumerable <Provider> >)actionResultProvider;
            IEnumerable <Provider> providers = contentResult.Content;

            foreach (Provider provider in providers)
            {
                if (provider.Name.Equals(DESIGNED_PROVIDER.Name))
                {
                    DESIGNED_PROVIDER.ID = provider.ID;
                }
            }
            providerController.Dispose();
            FIRST_PAYMENT  = CreateFirstPayment();
            SECOND_PAYMENT = CreateNewRandomPayment();
            CONTROLLER     = new PaymentsController(ADMIN_USER_USEREMAIL);
            CONTROLLER.PostPayment(FIRST_PAYMENT);
            CONTROLLER.PostPayment(SECOND_PAYMENT);
            CONTROLLER.Dispose();
        }
コード例 #2
0
        public async Task TestCreatePaymentUnknownMerchant()
        {
            SetMerchantId(Subject, UnknownMerchantId);
            var paymentRequest = GetPaymentRequest();
            var response       = await Subject.PostPayment(paymentRequest);

            Assert.IsInstanceOfType(response.Result, typeof(BadRequestResult));
            Assert.IsNull(response.Value);
        }
コード例 #3
0
        public void BeAbleToPostNewPaymentIntoRepository()
        {
            Payment payment = CreateNewRandomPayment();

            IHttpActionResult actionResult = CONTROLLER.PostPayment(payment);
            CreatedAtRouteNegotiatedContentResult <Payment> contentResult = (CreatedAtRouteNegotiatedContentResult <Payment>)actionResult;

            Assert.AreEqual(contentResult.Content, payment);
        }
コード例 #4
0
        public async Task Post_Payment_Returns_CreatedResult_When_Payment_Is_Successful()
        {
            _mediator
            .Setup(_ => _.Send(It.IsAny <CreatePaymentCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(Response.Success <Guid>(Guid.Empty, "test"));

            var response = await _sut.PostPayment(Guid.Empty, new PostPaymentModel());

            Assert.IsAssignableFrom <CreatedResult>(response.Result);
        }
コード例 #5
0
        public void FailIfPostedNewPaymentIsAlreadyInRepository()
        {
            List <IField> emptyFields = new List <IField>();
            NumberField   field       = new NumberField("Monto");

            emptyFields.Add(field);
            IField        filledField = field.FillAndClone("100");
            List <IField> fullFields  = new List <IField>();

            fullFields.Add(filledField);
            Provider       provider = new Provider("Antel", 3, emptyFields);
            Receipt        receipt  = new Receipt(provider, fullFields, 100);
            List <Receipt> list     = new List <Receipt>();

            list.Add(receipt);
            Payment payment            = new Payment(new CashPayMethod(DateTime.Now), 100, list);
            var     mockPaymentService = new Mock <IPaymentService>();

            mockPaymentService.Setup(x => x.CreatePayment(payment)).Throws(new ArgumentException());
            PaymentsController controller = new PaymentsController(mockPaymentService.Object);

            IHttpActionResult actionResult = controller.PostPayment(payment);

            Assert.IsInstanceOfType(actionResult, typeof(BadRequestErrorMessageResult));
        }
コード例 #6
0
        public void BeAbleToPostNewPaymentIntoRepository()
        {
            List <IField> emptyFields = new List <IField>();
            NumberField   field       = new NumberField("Monto");

            emptyFields.Add(field);
            IField        filledField = field.FillAndClone("100");
            List <IField> fullFields  = new List <IField>();

            fullFields.Add(filledField);
            Provider       provider = new Provider("Antel", 3, emptyFields);
            Receipt        receipt  = new Receipt(provider, fullFields, 100);
            List <Receipt> list     = new List <Receipt>();

            list.Add(receipt);
            Payment payment            = new Payment(new CashPayMethod(DateTime.Now), 100, list);
            var     mockPaymentService = new Mock <IPaymentService>();

            mockPaymentService.Setup(x => x.CreatePayment(payment)).Returns(1);
            PaymentsController controller = new PaymentsController(mockPaymentService.Object);

            IHttpActionResult actionResult = controller.PostPayment(payment);
            CreatedAtRouteNegotiatedContentResult <Payment> contentResult = (CreatedAtRouteNegotiatedContentResult <Payment>)actionResult;

            Assert.AreSame(contentResult.Content, payment);
        }
コード例 #7
0
        public async Task TestPostPaymentValid()
        {
            // Arrange
            var mockPaymentRepo  = new Mock <IPaymentRepository>();
            var mockCustomerRepo = new Mock <ICustomerRepository>();
            var paymentDTO       = CreatePaymentData();

            mockPaymentRepo.Setup(repo => repo.GetPaymentFromCustomer(paymentDTO.CustomerId))
            .ReturnsAsync(paymentDTO);
            mockCustomerRepo.Setup(repo => repo.GetCustomer(paymentDTO.CustomerId))
            .ReturnsAsync(paymentDTO.Customer);

            // Act
            var controller = new PaymentsController(mockPaymentRepo.Object, mockCustomerRepo.Object);

            SimulateModelValidation.Validate(mockPaymentRepo, controller);
            var result = await controller.PostPayment(paymentDTO);

            // Assert
            var okResult = Assert.IsType <CreatedAtActionResult>(result);
            var res      = Assert.IsType <Payment>(okResult.Value);
            var idea     = res as Payment;

            Assert.Equal(1, idea.PaymentId);
            Assert.NotNull(idea.Customer);
            Assert.NotNull(idea.Domain);
            Assert.Equal(GetLastDayOfMonth(), idea.DueDate);
            Assert.Equal(PaymentStatus.CREATED, idea.Status);
        }
コード例 #8
0
        public void CreatePayment()
        {
            var context = serviceProvider.GetRequiredService <DataContext>();

            var controller = new PaymentsController(context);

            controller.PostPayment(payment1);

            var createdPayment = controller.GetPaymentById(payment1.Id).Result.Value;

            Assert.Equal(createdPayment, payment1);
        }
コード例 #9
0
        public async Task TestPostPaymentNoAmount()
        {
            // Arrange
            var mockPaymentRepo  = new Mock <IPaymentRepository>();
            var mockCustomerRepo = new Mock <ICustomerRepository>();
            var paymentDTO       = CreatePaymentData();

            paymentDTO.Amount = 0;
            mockPaymentRepo.Setup(repo => repo.GetPaymentFromCustomer(paymentDTO.CustomerId))
            .ReturnsAsync(paymentDTO);
            mockCustomerRepo.Setup(repo => repo.GetCustomer(paymentDTO.CustomerId))
            .ReturnsAsync(paymentDTO.Customer);

            // Act
            var controller = new PaymentsController(mockPaymentRepo.Object, mockCustomerRepo.Object);

            SimulateModelValidation.Validate(mockPaymentRepo, controller);
            var result = await controller.PostPayment(paymentDTO);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }