public void Aluno_Com_Email_Não_Cadastrado()
        {
            var usuario = new Usuario("*****@*****.**", "123456", "123456", TipoUsuario.Aluno);
            var aluno = new Aluno("DIEGO NEVES", "94514198455", new DateTime(1989, 5, 24), true, usuario);

            var stubRepo = MockRepository.GenerateStub<IAlunoRepository>();
            stubRepo.Stub(x => x.ObterPorEmail(aluno.Usuario.Email)).Return(null);

            var alunoValidation = new AlunoEstaConsistenteParaCadastroValidation(stubRepo);
            var result = alunoValidation.Validar(aluno);

            Assert.IsFalse(result.Erros.Any(x => x.Message == "Já existe um aluno com esse e-mail."));
        }
        public void Aluno_Com_Email_Não_Cadastrado()
        {
            var usuario = new Usuario("*****@*****.**", "123456", "123456", TipoUsuario.Aluno);
            var aluno   = new Aluno("DIEGO NEVES", "94514198455", new DateTime(1989, 5, 24), true, usuario);

            var stubRepo = MockRepository.GenerateStub <IAlunoRepository>();

            stubRepo.Stub(x => x.ObterPorEmail(aluno.Usuario.Email)).Return(null);

            var alunoValidation = new AlunoEstaConsistenteParaCadastroValidation(stubRepo);
            var result          = alunoValidation.Validar(aluno);

            Assert.IsFalse(result.Erros.Any(x => x.Message == "Já existe um aluno com esse e-mail."));
        }
        public ValidationResult AdicionarNovoAluno(Aluno aluno)
        {
            var resultadoValidacao = new ValidationResult();

            if (!aluno.IsValid)
            {
                resultadoValidacao.AdicionarErro(aluno.ResultadoValidacao);
                return(resultadoValidacao);
            }

            var resultadoConsistencia = new AlunoEstaConsistenteParaCadastroValidation(_alunoRepository).Validar(aluno);

            if (!resultadoConsistencia.IsValid)
            {
                resultadoValidacao.AdicionarErro(resultadoConsistencia);
                return(resultadoValidacao);
            }
            _alunoRepository.Add(aluno);

            return(resultadoValidacao);
        }
        public ValidationResult AdicionarNovoAluno(Aluno aluno)
        {
            var resultadoValidacao = new ValidationResult();

            if (!aluno.IsValid)
            {
                resultadoValidacao.AdicionarErro(aluno.ResultadoValidacao);
                return resultadoValidacao;
            }

            var resultadoConsistencia = new AlunoEstaConsistenteParaCadastroValidation(_alunoRepository).Validar(aluno);

            if (!resultadoConsistencia.IsValid)
            {
                resultadoValidacao.AdicionarErro(resultadoConsistencia);
                return resultadoValidacao;
            }
            _alunoRepository.Add(aluno);

            return resultadoValidacao;
        }