public async void RetornaOkResultAplicarSegundaVezFundoValorAbaixoMinimo() { //Arrange var request = new MovimentoRequest() { IdFundo = new Guid("825D324A-A903-4C59-AAAC-AB403F75CCCA"), ValorMovimento = 500, CpfCliente = "87229420091", DataMovimento = DateTime.Now }; var requestSegundaAplicacao = new MovimentoRequest() { IdFundo = new Guid("825D324A-A903-4C59-AAAC-AB403F75CCCA"), ValorMovimento = 140, CpfCliente = "87229420091", DataMovimento = DateTime.Now }; //Act _ = await movimentoController.Aplicar(request); var resultado = await movimentoController.Aplicar(requestSegundaAplicacao); var okObjectResult = resultado.Result as OkObjectResult; //Assert Assert.IsType <OkObjectResult>(okObjectResult); }
public async Task <ActionResult <MovimentoResponse> > Aplicar([FromBody] MovimentoRequest request) { var fundo = await fundoService.ObterPorId(request.IdFundo); // validar se fundo existe if (fundo == null) { ModelState.AddModelError("IdFundo", "Fundo não encontrado!"); return(NotFound(ModelState)); } var movimento = await movimentoService.ObterPorIdFundoCpf(request.IdFundo, request.CpfCliente); if (movimento == null) { var valido = await movimentoService.ValidarValorMinimoInicial(request, fundo); if (!valido) { ModelState.AddModelError("ValorMovimento", $"Valor mínimo da aplicação deve ser R$ {fundo.InvestimentoInicialMinimo}!"); return(BadRequest(ModelState)); } } return(Ok(await movimentoService.Aplicar(request))); }
public async Task <ActionResult <MovimentoResponse> > Resgatar([FromBody] MovimentoRequest request) { var fundo = await fundoService.ObterPorId(request.IdFundo); // validar se fundo existe if (fundo == null) { ModelState.AddModelError("IdFundo", "Fundo não encontrado!"); return(NotFound(ModelState)); } return(Ok(await movimentoService.Resgatar(request))); }
public async Task <MovimentoResponse> Resgatar(MovimentoRequest movimento) { var entity = mapper.Map <Movimento>(movimento); entity.TipoMovimento = TipoMovimento.RESGATE; await movimentoRepository.Adicionar(entity); await unitOfWork.Salvar(); var model = mapper.Map <MovimentoResponse>(entity); return(model); }
public async void RetornaNotFoundAplicarFundoInexistente() { //Arrange var request = new MovimentoRequest() { IdFundo = new Guid("AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA") }; //Act var resultado = await movimentoController.Aplicar(request); var notFoundResult = resultado.Result as NotFoundObjectResult; //Assert Assert.IsType <NotFoundObjectResult>(notFoundResult); }
public async void RetornaBadRequestAplicarFundoValorAbaixoMinimo() { //Arrange var request = new MovimentoRequest() { IdFundo = new Guid("8A576098-FD61-41D0-8FAA-AA6B6C0ED072"), ValorMovimento = 4000 }; //Act var resultado = await movimentoController.Aplicar(request); var notFoundResult = resultado.Result as BadRequestObjectResult; //Assert Assert.IsType <BadRequestObjectResult>(notFoundResult); }
public async void RetornaFalsoValorMinimoInicial() { //Arrange var request = new MovimentoRequest() { ValorMovimento = 1000, }; FundoResponse fundo = new FundoResponse() { InvestimentoInicialMinimo = 5000 }; //Act var resultado = await movimentoService.ValidarValorMinimoInicial(request, fundo); //Assert Assert.False(resultado); }
public async void RetornaOkResultResgatarFundoExistente() { //Arrange var request = new MovimentoRequest() { IdFundo = new Guid("413D6804-088C-430D-8652-71D3E5A34C61"), ValorMovimento = 20000, CpfCliente = "87229420091", DataMovimento = DateTime.Now }; //Act var resultado = await movimentoController.Resgatar(request); var notFoundResult = resultado.Result as OkObjectResult; //Assert Assert.IsType <OkObjectResult>(notFoundResult); }
public async void RetornaOkResultAplicarFundoValorAcimaMinimo() { //Arrange var request = new MovimentoRequest() { IdFundo = new Guid("8A576098-FD61-41D0-8FAA-AA6B6C0ED072"), ValorMovimento = 6000, CpfCliente = "87229420091", DataMovimento = DateTime.Now }; //Act var resultado = await movimentoController.Aplicar(request); var okObjectResult = resultado.Result as OkObjectResult; //Assert Assert.IsType <OkObjectResult>(okObjectResult); }
public async Task <bool> ValidarValorMinimoInicial(MovimentoRequest request, FundoResponse fundo) { return(await Task.FromResult(request.ValorMovimento >= fundo.InvestimentoInicialMinimo)); }