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); }
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); }
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)); }
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); }
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; } } }