Ejemplo n.º 1
0
        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);
        }