コード例 #1
0
        private async Task Valida_Tratamento_De_Duplicidade_De_Email_Nao_Encontrando_Email_Valido_Deve_Disparar_Excecao()
        {
            // Arrange
            var aluno = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));

            var email           = aluno.Email;
            var emailTentativa1 = "*****@*****.**";
            var emailTentativa2 = "*****@*****.**";
            var emailTentativa3 = "*****@*****.**";

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(email, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(emailTentativa1, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(emailTentativa2, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(emailTentativa3, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            var query = new VerificarEmailExistenteAlunoQuery(aluno);

            // Assert
            await Assert.ThrowsAsync <NegocioException>(() => verificarEmailExistenteAlunoQueryHandler.Handle(query, CancellationToken.None));
        }
コード例 #2
0
        private async Task Valida_Tratamento_De_Duplicidade_De_Email_Ate_A_Ultima_Tentativa_Deve_Retornar_O_Email_Alterado()
        {
            // Arrange
            var aluno = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));

            var email           = aluno.Email;
            var emailTentativa1 = "*****@*****.**";
            var emailTentativa2 = "*****@*****.**";
            var emailTentativa3 = "*****@*****.**";

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(email, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(emailTentativa1, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(emailTentativa2, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(true);

            repositorioUsuario.Setup(x => x.ExisteEmailUsuarioPorTipo(emailTentativa3, UsuarioTipo.Aluno, aluno.Codigo))
            .ReturnsAsync(false);

            var query = new VerificarEmailExistenteAlunoQuery(aluno);

            // Act
            var alunoRetorno = await verificarEmailExistenteAlunoQueryHandler.Handle(query, CancellationToken.None);

            // Assert
            Assert.NotNull(alunoRetorno);
            Assert.Equal(emailTentativa3, alunoRetorno.Email);
        }
コード例 #3
0
        private async Task Valida_Inclusao_De_Aluno_Valido_Deve_Retornar_True()
        {
            // Arrange
            var aluno = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));
            var alunoComEmailTratado = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));

            mediator.Setup(a => a.Send(It.IsAny <VerificarEmailExistenteAlunoQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(alunoComEmailTratado);

            mediator.Setup(a => a.Send(It.IsAny <ExisteAlunoPorCodigoQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(false);

            mediator.Setup(a => a.Send(It.IsAny <InserirAlunoGoogleCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(true);

            mediator.Setup(a => a.Send(It.IsAny <IncluirUsuarioCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(10);

            mediator.Setup(a => a.Send(It.IsAny <PublicaFilaRabbitCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(true);

            var alunoJson = JsonConvert.SerializeObject(aluno);
            var mensagem  = new MensagemRabbit(alunoJson);

            // Act
            var retorno = await incluirAlunoUseCase.Executar(mensagem);

            // Assert
            Assert.True(retorno);
        }
コード例 #4
0
 public FiltroAlunoDto(AlunoEol alunoEol, int?anoLetivo, List <int> tiposUes, List <long> ues, List <long> turmas)
 {
     AlunoEol  = alunoEol;
     AnoLetivo = anoLetivo;
     TiposUes  = tiposUes;
     Ues       = ues;
     Turmas    = turmas;
 }
コード例 #5
0
        private void Valida_Geracao_Email_Invalido_Passando_O_Resultado_Esperado(string nome, DateTime dataNascimento, string emailEsperado)
        {
            // Arrange
            var aluno = new AlunoEol(1, nome, string.Empty, string.Empty, dataNascimento);

            // Assert
            Assert.NotEqual(emailEsperado, aluno.Email);
        }
コード例 #6
0
        public void Valida_Definicao_Do_Nome_E_Email_Valido_Passando_Os_Resultados_Esperados(int codigoAluno, string nomePessoa, string nomeSocial, DateTime dataNascimento, string nomeEsperado, string emailEsperado)
        {
            // Arrange
            var alunoEol = new AlunoEol(codigoAluno, nomePessoa, nomeSocial, string.Empty, dataNascimento);

            // Assert
            Assert.NotNull(alunoEol);
            Assert.Equal(nomeEsperado, alunoEol.Nome);
            Assert.Equal(emailEsperado, alunoEol.Email);
        }
コード例 #7
0
        private void Valida_Geracao_Email_Alternativo_Para_Tratamento_De_Duplicidade_Passando_O_Resultado_Esperado(int tentativa, string nome, DateTime dataNascimento, string emailEsperado)
        {
            // Arrange
            var aluno = new AlunoEol(1, nome, string.Empty, string.Empty, dataNascimento);

            // Act
            aluno.DefinirEmail(tentativa);

            // Assert
            Assert.Equal(emailEsperado, aluno.Email);
        }
コード例 #8
0
        private async Task Valida_Tratamento_De_Duplicidade_No_Google_Deve_Retornar_True()
        {
            // Arrange
            var aluno = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));
            var alunoComEmailTratado = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));

            mediator.Setup(a => a.Send(It.IsAny <VerificarEmailExistenteAlunoQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(alunoComEmailTratado);

            mediator.Setup(a => a.Send(It.IsAny <ExisteAlunoPorCodigoQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(false);

            var googleDuplicidadeException = new GoogleApiException(string.Empty, GoogleApiExceptionMensagens.Erro409EntityAlreadyExists);

            googleDuplicidadeException.HttpStatusCode = HttpStatusCode.Conflict;
            googleDuplicidadeException.Error          = new Google.Apis.Requests.RequestError
            {
                Code    = (int)HttpStatusCode.Conflict,
                Message = GoogleApiExceptionMensagens.Erro409EntityAlreadyExists
            };

            mediator.Setup(a => a.Send(It.IsAny <InserirAlunoGoogleCommand>(), It.IsAny <CancellationToken>()))
            .Throws(googleDuplicidadeException);

            mediator.Setup(a => a.Send(It.IsAny <IncluirUsuarioCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(10);

            mediator.Setup(a => a.Send(It.IsAny <PublicaFilaRabbitCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(true);

            var alunoJson = JsonConvert.SerializeObject(aluno);
            var mensagem  = new MensagemRabbit(alunoJson);

            // Act
            var retorno = await incluirAlunoUseCase.Executar(mensagem);

            // Assert
            Assert.True(retorno);
        }
コード例 #9
0
        private async Task Valida_Tratamento_De_Excecoes_Ao_Comunicar_Com_Google_Deve_Devolver_A_Excecao_Disparada()
        {
            // Arrange
            var aluno = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));
            var alunoComEmailTratado = new AlunoEol(1, "José da Silva", string.Empty, string.Empty, new DateTime(1990, 9, 10));

            mediator.Setup(a => a.Send(It.IsAny <VerificarEmailExistenteAlunoQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(alunoComEmailTratado);

            mediator.Setup(a => a.Send(It.IsAny <ExisteAlunoPorCodigoQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(false);

            var excecao = new NullReferenceException("Erro ao se comunicar Google Classroom.");

            mediator.Setup(a => a.Send(It.IsAny <InserirAlunoGoogleCommand>(), It.IsAny <CancellationToken>()))
            .Throws(excecao);

            var alunoJson = JsonConvert.SerializeObject(aluno);
            var mensagem  = new MensagemRabbit(alunoJson);

            // Assert
            await Assert.ThrowsAsync <NullReferenceException>(() => incluirAlunoUseCase.Executar(mensagem));
        }