private async Task Valida_Tratamento_De_Duplicidade_No_Google_Deve_Retornar_True()
        {
            // Arrange
            var professor = new ProfessorEol(123456, "José da Silva", string.Empty, string.Empty);

            mediator.Setup(a => a.Send(It.IsAny <ExisteProfessorPorRfQuery>(), 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 <InserirProfessorGoogleCommand>(), 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 professorJson = JsonConvert.SerializeObject(professor);
            var mensagem      = new MensagemRabbit(professorJson);

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

            // Assert
            Assert.True(retorno);
        }
        private async Task Valida_Inclusao_De_Professor_Valido_Deve_Retornar_True()
        {
            // Arrange
            var professor = new ProfessorEol(123456, "José da Silva", string.Empty, string.Empty);

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

            mediator.Setup(a => a.Send(It.IsAny <InserirProfessorGoogleCommand>(), 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 professorJson = JsonConvert.SerializeObject(professor);
            var mensagem      = new MensagemRabbit(professorJson);

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

            // Assert
            Assert.True(retorno);
        }
Пример #3
0
        public void Valida_Geracao_Email_Invalido_Passando_O_Resultado_Esperado(long rf, string nomePessoa, string nomeSocial, string organizationPath, string emailEsperado)
        {
            // Arrange
            var funcionario = new ProfessorEol(rf, nomePessoa, nomeSocial, organizationPath);

            // Assert
            Assert.NotEqual(emailEsperado, funcionario.Email);
        }
Пример #4
0
 private async Task IncluirProfessorComErroAsync(ProfessorEol professorParaIncluirGoogle, string mensagem)
 {
     var professorComErro = new IncluirUsuarioErroCommand(
         professorParaIncluirGoogle.Rf,
         professorParaIncluirGoogle.Email,
         mensagem,
         UsuarioTipo.Professor,
         ExecucaoTipo.ProfessorAdicionar);
     await mediator.Send(professorComErro);
 }
Пример #5
0
        public void Valida_Definicao_Do_Nome_E_Email_Valido_Passando_Os_Resultados_Esperados(long rf, string nomePessoa, string nomeSocial, string nomeEsperado, string emailEsperado)
        {
            // Arrange
            var professorEol = new ProfessorEol(rf, nomePessoa, nomeSocial, string.Empty);

            // Assert
            Assert.NotNull(professorEol);
            Assert.Equal(nomeEsperado, professorEol.Nome);
            Assert.Equal(emailEsperado, professorEol.Email);
        }
        private async Task Valida_Tratamento_De_Duplicidade_No_Google_Deve_Devolver_A_GoogleApiExption_Disparada()
        {
            // Arrange
            var professor = new ProfessorEol(123456, "José da Silva", string.Empty, string.Empty);

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

            var googleException = new GoogleApiException(string.Empty, "Erro no Google Classroom.");

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

            var professorJson = JsonConvert.SerializeObject(professor);
            var mensagem      = new MensagemRabbit(professorJson);

            // Assert
            await Assert.ThrowsAsync <GoogleApiException>(() => inserirProfessorGoogleUseCase.Executar(mensagem));
        }
        private async Task Valida_Tratamento_De_Excecoes_Ao_Comunicar_Com_Google_Deve_Devolver_A_Excecao_Disparada()
        {
            // Arrange
            var professor = new ProfessorEol(123456, "José da Silva", string.Empty, string.Empty);

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

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

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

            var professorJson = JsonConvert.SerializeObject(professor);
            var mensagem      = new MensagemRabbit(professorJson);

            // Assert
            await Assert.ThrowsAsync <NullReferenceException>(() => inserirProfessorGoogleUseCase.Executar(mensagem));
        }
Пример #8
0
        public async Task <bool> Executar(MensagemRabbit mensagemRabbit)
        {
            var filtro = JsonConvert.DeserializeObject <AlunoCursoEol>(mensagemRabbit.Mensagem.ToString());

            try
            {
                var alunoCursoGoogle = new AlunoCursoGoogle();

                var aluno = await mediator.Send(new ObterUsuariosPorCodigosQuery(filtro.CodigoRF, (int)UsuarioTipo.Professor));

                if (aluno is null || !aluno.Any())
                {
                    var professorEol = new ProfessorEol(filtro.CodigoRF, filtro.NomePessoa, filtro.NomeSocial ?? string.Empty, filtro.OrganizationPath);

                    var professorGoogle = new ProfessorGoogle(filtro.CodigoRF, professorEol.Nome, professorEol.Email, filtro.OrganizationPath);
                    var indiceInserido  = await InserirProfessorGoogleAsync(professorGoogle);

                    if (indiceInserido > 0)
                    {
                        var usuarioGsa         = new UsuarioGsa(filtro.CodigoRF.ToString(), professorEol.Email, filtro.NomePessoa, null, false, filtro.OrganizationPath, false, DateTime.Now);
                        var usuarioGsaInserido = await mediator.Send(new IncluirUsuarioGsaCommand(usuarioGsa));

                        alunoCursoGoogle = new AlunoCursoGoogle(indiceInserido, filtro.CursoId);
                        await InserirAlunoCursoGoogleAsync(alunoCursoGoogle, professorEol.Email);
                    }
                    else
                    {
                        filtro.MensagemErro += $" Inserido: {indiceInserido}";
                        await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaFormacaoCidadeTurmasTratarAlunoErro, filtro));
                    }
                }
                else
                {
                    var alunoFirst = aluno.FirstOrDefault();
                    alunoCursoGoogle = new AlunoCursoGoogle(alunoFirst.Indice, filtro.CursoId);
                    await InserirAlunoCursoGoogleAsync(alunoCursoGoogle, alunoFirst.Email);
                }
            }