示例#1
0
        public ProjetoAptoASerCadastradoValidation(IProjetoRepository projetoRepository)
        {
            _projetoRepository = projetoRepository;

            var codigoDuplicadoSpec = new CodigoProjetoCadastradoSpecification(_projetoRepository);
            var rateioValidoSpec    = new RateioValidoSpecification();

            base.AdicionarRegra("CodigoDuplicado", new Regra <Projeto>(codigoDuplicadoSpec, "Já existe o mesmo Código cadastrado na base"));
            base.AdicionarRegra("RateioValido", new Regra <Projeto>(rateioValidoSpec, "Rateio está inválido."));
        }
        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);
        }
        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);
        }