Exemplo n.º 1
0
        private async Task Valida_Tratamento_De_Aluno_Ja_Incluso_No_Curso_Deve_Retornar_True()
        {
            // Arrange
            var alunoCurso  = new AlunoCursoEol(1234567, 1010, 6);
            var alunoGoogle = new AlunoGoogle(1234567, "José da Silva", "*****@*****.**", string.Empty);
            var cursoGoogle = new CursoGoogle("Curso Google", "Seção", 1010, 6, "*****@*****.**");

            mediator.Setup(a => a.Send(It.IsAny <ObterAlunosPorCodigosQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <AlunoGoogle> {
                alunoGoogle
            });

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

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

            var alunoCursoJson = JsonConvert.SerializeObject(alunoCurso);
            var mensagem       = new MensagemRabbit(alunoCursoJson);

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

            // Assert
            Assert.True(retorno);
        }
Exemplo n.º 2
0
        private async Task Valida_Tratamento_De_Excecoes_Ao_Comunicar_Com_Google_Deve_Devolver_A_Excecao_Disparada()
        {
            // Arrange
            var alunoCurso  = new AlunoCursoEol(1234567, 1010, 6);
            var alunoGoogle = new AlunoGoogle(1234567, "José da Silva", "*****@*****.**", string.Empty);
            var cursoGoogle = new CursoGoogle("Curso Google", "Seção", 1010, 6, "*****@*****.**");

            mediator.Setup(a => a.Send(It.IsAny <ObterAlunosPorCodigosQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <AlunoGoogle> {
                alunoGoogle
            });

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

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

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

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

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

            var alunoCursoJson = JsonConvert.SerializeObject(alunoCurso);
            var mensagem       = new MensagemRabbit(alunoCursoJson);

            // Assert
            await Assert.ThrowsAsync <NullReferenceException>(() => inserirAlunoCursoGoogleUseCase.Executar(mensagem));
        }
Exemplo n.º 3
0
        private static string ObterMensagemDeErro(AlunoCursoEol cursoDoAlunoParaIncluirGoogle, Exception ex = null)
        {
            var mensagem = $"Não foi possível inserir o curso [TurmaId:{cursoDoAlunoParaIncluirGoogle.TurmaId}, ComponenteCurricularId:{cursoDoAlunoParaIncluirGoogle.ComponenteCurricularId}] aluno RA{cursoDoAlunoParaIncluirGoogle.CodigoAluno} na fila para inclusão no Google Classroom.";

            if (ex is null)
            {
                return(mensagem);
            }
            return($"{mensagem}. {ex.InnerException?.Message ?? ex.Message}. {ex.StackTrace}");
        }
Exemplo n.º 4
0
        private async Task IncluirCursoDoAlunoComErroAsync(AlunoCursoEol cursoDoAlunoParaIncluirGoogle, string mensagem)
        {
            var command = new IncluirCursoUsuarioErroCommand(
                cursoDoAlunoParaIncluirGoogle.CodigoAluno,
                cursoDoAlunoParaIncluirGoogle.TurmaId,
                cursoDoAlunoParaIncluirGoogle.ComponenteCurricularId,
                ExecucaoTipo.AlunoCursoAdicionar,
                ErroTipo.Negocio,
                mensagem);

            await mediator.Send(command);
        }
Exemplo n.º 5
0
        public async Task <bool> Executar(AtribuirAlunoCursoDto atribuirAlunoCurso)
        {
            var alunoCursoEol = new AlunoCursoEol(atribuirAlunoCurso.CodigoAluno, atribuirAlunoCurso.TurmaId, atribuirAlunoCurso.ComponenteCurricularId);

            var publicarAlunoCurso = await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaAlunoCursoIncluir, RotasRabbit.FilaAlunoCursoIncluir, alunoCursoEol));

            if (!publicarAlunoCurso)
            {
                throw new NegocioException("Não foi possível realizar a requisição para atribuir o aluno ao curso.");
            }

            return(publicarAlunoCurso);
        }
Exemplo n.º 6
0
        private async Task Valida_Tratamento_De_Aluno_Nao_Incluso_Deve_Retornar_False()
        {
            // Arrange
            var alunoCurso = new AlunoCursoEol(1234567, 1010, 6);

            mediator.Setup(a => a.Send(It.IsAny <ObterAlunosPorCodigosQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <AlunoGoogle>());

            var alunoCursoJson = JsonConvert.SerializeObject(alunoCurso);
            var mensagem       = new MensagemRabbit(alunoCursoJson);

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

            // Assert
            Assert.False(retorno);
        }