Esempio n. 1
0
        public void PaymentsInvalidModel()
        {
            var credit = new CreditParams();

            var controller = new CreditController();

            controller.ModelState.AddModelError("some", "error");
            var actionResult = controller.Payments(credit) as JsonResult;
            var errorField   = actionResult.Value.GetType().GetProperty("Error");

            Assert.NotNull(errorField);
        }
        public CreditControllerTest()
        {
            var mockMapper = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new MappingProfile());
            });
            var mapper        = mockMapper.CreateMapper();
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("appsettings.json")
                                .Build();

            _service    = new CreditBusinessTest(mapper, configuration);
            _controller = new CreditController(_service);
        }
Esempio n. 3
0
        public void PaymentsIncorrectDownpayment()
        {
            var credit = new CreditParams()
            {
                Amount      = 100000,
                Interest    = 0.055,
                Downpayment = 110000,
                Term        = 30
            };

            var controller   = new CreditController();
            var actionResult = controller.Payments(credit) as JsonResult;
            var errorField   = actionResult.Value.GetType().GetProperty("Error");

            Assert.NotNull(errorField);
        }
        public async Task TakeCreditForm_Post_WhenModelIsValid()
        {
            //Arrage
            var mockCreditRepository = new Mock <ICreditRepository>();
            var mockMediator         = new Mock <IMediator>();
            var testModel            = GetTestTakeCreditViewModel();

            var controller = new CreditController(mockCreditRepository.Object, mockMediator.Object);

            //Act
            var result = await controller.TakeCreditForm(testModel);

            //Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("AllCredits", redirectToActionResult.ActionName);
        }
        public async Task TakeCreditForm_Post_WhenModelIsInvalid()
        {
            //Arrage
            var mockCreditRepository = new Mock <ICreditRepository>();
            var mockMediator         = new Mock <IMediator>();
            var testModel            = GetTestTakeCreditViewModel();

            var controller = new CreditController(mockCreditRepository.Object, mockMediator.Object);

            controller.ModelState.AddModelError("IdClient", "Required");

            //Act
            var result = await controller.TakeCreditForm(testModel);

            //Assert
            Assert.False(controller.ModelState.IsValid);
            Assert.True(controller.ModelState.Count == 1);
        }
Esempio n. 6
0
        public void PaymentsWithoutDownpayment()
        {
            var credit = new CreditParams()
            {
                Amount      = 100000,
                Interest    = 0.055,
                Downpayment = 0,
                Term        = 30
            };

            var controller   = new CreditController();
            var actionResult = controller.Payments(credit) as JsonResult;
            var payments     = actionResult.Value as PaymentsParams;

            Assert.Equal("573.38", payments.MonthlyPayment.ToString("F2", CultureInfo.InvariantCulture));
            Assert.Equal("106416.17", payments.TotalInterest.ToString("F2", CultureInfo.InvariantCulture));
            Assert.Equal("206416.17", payments.TotalPayment.ToString("F2", CultureInfo.InvariantCulture));
        }
Esempio n. 7
0
        public void PaymentsCorrect()
        {
            var credit = new CreditParams()
            {
                Amount      = 100000,
                Interest    = 0.055,
                Downpayment = 20000,
                Term        = 30
            };

            var controller   = new CreditController();
            var actionResult = controller.Payments(credit) as JsonResult;
            var payments     = actionResult.Value as PaymentsParams;

            Assert.Equal("458.70", payments.MonthlyPayment.ToString("F2", CultureInfo.InvariantCulture));
            Assert.Equal("65132.94", payments.TotalInterest.ToString("F2", CultureInfo.InvariantCulture));
            Assert.Equal("165132.94", payments.TotalPayment.ToString("F2", CultureInfo.InvariantCulture));
        }
        public async Task TakeCreditForm_Get_WhenCreditsIsNull()
        {
            //Arrage
            var mockCreditRepository = new Mock <ICreditRepository>();
            var mockMediator         = new Mock <IMediator>();

            mockMediator
            .Setup(m => m.Send(It.IsAny <GetBankAccountsWithoutActiveCreditQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(GetEmptyListBankAccounts())
            .Verifiable();
            var controller = new CreditController(mockCreditRepository.Object, mockMediator.Object);

            //Act
            var result = await controller.TakeCreditForm(idClient : 3);

            //Assign
            var redirect = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("NonAccounts", redirect.ActionName);
        }
        public async Task TakeCreditForm_Get_WhenCreditsIsNotNull()
        {
            //Arrage
            var mockCreditRepository = new Mock <ICreditRepository>();
            var mockMediator         = new Mock <IMediator>();

            mockMediator
            .Setup(m =>
                   m.Send(It.IsAny <GetBankAccountsWithoutActiveCreditQuery>(),
                          It.IsAny <CancellationToken>()))
            .ReturnsAsync(GetListBankAccounts())
            .Verifiable();
            var controller = new CreditController(mockCreditRepository.Object, mockMediator.Object);

            //Act
            var result = await controller.TakeCreditForm(idClient : 3);

            //Assign
            var request = Assert.IsType <ViewResult>(result);
            var model   = Assert.IsAssignableFrom <TakeCreditViewModel>(request.ViewData.Model);

            Assert.Equal(expected: 3, model.IdClient);
        }
        public async Task AllCredits_WhenIdClientIsNotNull()
        {
            //Arrage
            var mockMediator         = new Mock <IMediator>();
            var mockCreditRepository = new Mock <ICreditRepository>();

            var fakeData = new List <Credit> {
                new Credit()
            }.AsQueryable();

            mockCreditRepository.Setup(x => x.Credits).Returns(fakeData);

            var controller = new CreditController(mockCreditRepository.Object, mockMediator.Object);

            //Act
            var result = await controller.AllCredits(idClient : 3);

            //Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <AllCreditClientViewModel>(viewResult.ViewData.Model);

            Assert.Equal(expected: 3, model.IdClient);
            Assert.NotNull(model.Credits);
        }
 public void Setup()
 {
     _mockCreditService = new Mock <ICreditService>();
     _sut = new CreditController(_mockCreditService.Object);
 }
Esempio n. 12
0
        public static void ControlCredits(string userId)
        {
            Credit            credit            = new Credit();
            Payment           payment           = new Payment();
            PaymentController paymentController = new PaymentController();
            CreditController  creditController  = new CreditController();
            IHttpActionResult resp;
            var continuar = true;

            while (continuar)
            {
                Console.WriteLine("***************************");
                Console.WriteLine("--------- CREDITOS --------");
                Console.WriteLine("***************************");
                credit.UserId = userId;
                resp          = creditController.Get(credit);
                var listRespContent = resp as OkNegotiatedContentResult <List <Credit> >;

                if (listRespContent != null)
                {
                    foreach (var c in listRespContent.Content)
                    {
                        Console.WriteLine(" ==> CREDITO: " + c.GetEntityInformation());
                    }
                }
                else
                {
                    Console.WriteLine("No existen creditos registradas para este usuario");
                }
                Console.WriteLine("--------------------");
                Console.WriteLine("Que desea realizar?");
                Console.WriteLine("1. Registrar un nuevo credito");
                Console.WriteLine("2. Modificar credito");
                Console.WriteLine("3. Eliminar credito");
                Console.WriteLine("4. Ver pagos realizados");
                Console.WriteLine("5. Realizar pago");
                Console.WriteLine("6. Volver al menu principal");
                Console.Write("Digite la opcion que desea: ");
                var option = Console.ReadLine();

                switch (option)
                {
                case "1":
                    Console.WriteLine("\n ***** Registrar nueva credito *******" + '\n');
                    Console.WriteLine("Ingrese la siguiente informacion en el mismo orden y separado por comas");
                    Console.WriteLine("Monto, Tasa de interes, Nombre de la linea de credito, Cuota, Fecha de inicio (aaaa-mm-dd), Estado del credito");
                    var info      = Console.ReadLine();
                    var infoArray = info.Split(',');
                    trimString(infoArray);
                    credit = new Credit(infoArray, credit.UserId);
                    resp   = creditController.Post(credit);
                    var creRespCont = resp as OkNegotiatedContentResult <Credit>;
                    if (creRespCont != null)
                    {
                        Console.WriteLine(creRespCont.Content);
                    }
                    else
                    {
                        var errorMsg = resp as NegotiatedContentResult <string>;
                        Console.WriteLine(errorMsg.Content);
                    }

                    break;

                case "2":
                    Console.WriteLine("\n ***** Actualizar credito ***** \n");
                    Console.WriteLine("Ingrese la informacion actualizada");
                    Console.Write("Digite el id del credito a actualizar: ");
                    credit.CreditId = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Tasa de interes: ");
                    credit.InterestRate = Convert.ToDouble(Console.ReadLine());
                    Console.Write("Nombre de linea del credito: ");
                    credit.CreditLine = Console.ReadLine();
                    Console.Write("Cuota: ");
                    credit.Fee = Convert.ToDouble(Console.ReadLine());
                    Console.Write("Fecha de inicio (aaaa-mm-dd): ");
                    credit.StartDate = Convert.ToDateTime(Console.ReadLine());
                    Console.Write("Estado del credito (A= Aprobado/ D= Denegado/ P= Pendiente): ");
                    credit.Status = Convert.ToChar(Console.ReadLine());

                    resp = creditController.Put(credit);
                    var updRespCont = resp as OkNegotiatedContentResult <string>;
                    if (updRespCont != null)
                    {
                        Console.WriteLine(updRespCont.Content);
                    }
                    else
                    {
                        var errorMsg = resp as NegotiatedContentResult <string>;
                        Console.WriteLine(errorMsg.Content);
                    }

                    break;

                case "3":
                    Console.WriteLine("\n ***** Eliminar credito ***** \n");
                    Console.Write("Digite el numero de cuenta a eliminar: ");
                    credit.CreditId = Convert.ToInt32(Console.ReadLine());
                    resp            = creditController.Delete(credit);
                    var delRespCont = resp as OkNegotiatedContentResult <string>;
                    if (delRespCont != null)
                    {
                        Console.WriteLine(delRespCont.Content);
                    }
                    else
                    {
                        var errorMsg = resp as NegotiatedContentResult <string>;
                        Console.WriteLine(errorMsg.Content);
                    }
                    break;

                case "4":
                    Console.WriteLine("\n ***** Pagos realizados ***** \n");
                    Console.Write("Ingrese el id del credito a consultar: ");
                    payment.CreditId = Convert.ToInt32(Console.ReadLine());

                    resp = paymentController.Get(payment);
                    var paymRespContent = resp as OkNegotiatedContentResult <List <Payment> >;

                    if (paymRespContent != null)
                    {
                        foreach (var c in paymRespContent.Content)
                        {
                            Console.WriteLine(" ==> PAGO: " + c.GetEntityInformation());
                        }
                    }
                    else
                    {
                        var errorMsg = resp as NegotiatedContentResult <string>;
                        Console.WriteLine(errorMsg.Content);
                    }
                    break;

                case "5":
                    Console.WriteLine("\n ***** Hacer pago *******" + '\n');
                    Console.WriteLine("Digite el id del credito al cual va a realizar el pago");
                    credit.CreditId = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Ingrese la siguiente informacion en el mismo orden y separado por comas");
                    Console.WriteLine("Fecha de pago (aaaa-mm-dd), Monto");
                    info      = Console.ReadLine();
                    infoArray = info.Split(',');
                    trimString(infoArray);
                    payment = new Payment(infoArray, credit.CreditId, credit.UserId);
                    resp    = paymentController.Post(payment);
                    var payRespCont = resp as OkNegotiatedContentResult <string>;
                    if (payRespCont != null)
                    {
                        Console.WriteLine(payRespCont.Content);
                    }
                    else
                    {
                        var errorMsg = resp as NegotiatedContentResult <string>;
                        Console.WriteLine(errorMsg.Content);
                    }
                    break;

                case "6":
                    continuar = false;
                    break;
                }
            }
        }