public IActionResult Cadastrar([FromBody] CadastroProjetoViewModel viewModel) { var projeto = new Projeto(viewModel.Codigo, viewModel.Nome, viewModel.ValorSolicitado, viewModel.TipoProjetoId, viewModel.DataInicioPrevista, viewModel.DataTerminoPrevista); foreach (var dr in viewModel.DRs) { projeto.AdicionarDRParticipante(new RateioDR(dr.SiglaRegional, dr.ValorTotal, dr.ValorParticipacaoDN)); } var resultadoValidacao = new ValidationResult(); var result = new ProjetoAptoASerCadastradoValidation(_projetoRepository).Validar(projeto); if (!result.IsValid) { resultadoValidacao.AdicionarErro(result); return(BadRequest(resultadoValidacao)); } return(Ok(resultadoValidacao)); }
public void DeveRetornarErroPorqueRateioEstaInvalido() { //Arrange var novoProjeto = new Projeto("RJ.19.00001", "PRJ 1", 10, Projeto.AporteFinanceiroAntecipado, DateTime.Now, DateTime.Now); var rj = new RateioDR("RJ", 10, 5); novoProjeto.AdicionarDRParticipante(rj); var sp = new RateioDR("SP", 3, 5); novoProjeto.AdicionarDRParticipante(sp); var spec = new RateioValidoSpecification(); //Act var result = spec.IsSatisfiedBy(novoProjeto); //Assert Assert.IsFalse(result); }
public void DeveRetornarSucessoPorqueRateioEstaValido() { //Arrange var novoProjeto = new Projeto("RJ.19.00001", "PRJ 1", 10, Guid.NewGuid(), DateTime.Now, DateTime.Now); var drParticipante = new RateioDR("RJ", 10, 5); novoProjeto.AdicionarDRParticipante(drParticipante); var spec = new RateioValidoSpecification(); //Act var result = spec.IsSatisfiedBy(novoProjeto); //Assert Assert.IsTrue(result); }