private async Task Valida_Tratamento_De_Funcionario_Ja_Incluso_No_Curso_Deve_Retornar_True()
        {
            // Arrange
            var funcionarioCurso  = new FuncionarioCursoEol(1234567, 1010, 6);
            var funcionarioGoogle = new FuncionarioGoogle(1234567, "José da Silva", "*****@*****.**", string.Empty);
            var cursoGoogle       = new CursoGoogle("Curso Google", "Seção", 1010, 6, "*****@*****.**");

            mediator.Setup(a => a.Send(It.IsAny <ObterFuncionariosGooglePorRfsQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <FuncionarioGoogle> {
                funcionarioGoogle
            });

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

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

            var funcionarioCursoJson = JsonConvert.SerializeObject(funcionarioCurso);
            var mensagem             = new MensagemRabbit(funcionarioCursoJson);

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

            // Assert
            Assert.True(retorno);
        }
        private async Task Valida_Tratamento_De_Excecoes_Ao_Comunicar_Com_Google_Deve_Devolver_A_Excecao_Disparada()
        {
            // Arrange
            var funcionarioCurso  = new FuncionarioCursoEol(1234567, 1010, 6);
            var funcionarioGoogle = new FuncionarioGoogle(1234567, "José da Silva", "*****@*****.**", string.Empty);
            var cursoGoogle       = new CursoGoogle("Curso Google", "Seção", 1010, 6, "*****@*****.**");

            mediator.Setup(a => a.Send(It.IsAny <ObterFuncionariosGooglePorRfsQuery>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <FuncionarioGoogle> {
                funcionarioGoogle
            });

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

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

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

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

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

            var funcionarioCursoJson = JsonConvert.SerializeObject(funcionarioCurso);
            var mensagem             = new MensagemRabbit(funcionarioCursoJson);

            // Assert
            await Assert.ThrowsAsync <NullReferenceException>(() => inserirFuncionarioCursoGoogleUseCase.Executar(mensagem));
        }
        private static string ObterMensagemDeErro(FuncionarioCursoEol cursoDoFuncionarioParaIncluirGoogle, Exception ex = null)
        {
            var mensagem = $"Não foi possível inserir o curso [TurmaId:{cursoDoFuncionarioParaIncluirGoogle.TurmaId}, ComponenteCurricularId:{cursoDoFuncionarioParaIncluirGoogle.ComponenteCurricularId}] funcionário RF{cursoDoFuncionarioParaIncluirGoogle.Rf} na fila para inclusão no Google Classroom.";

            if (ex is null)
            {
                return(mensagem);
            }
            return($"{mensagem}. {ex.InnerException?.Message ?? ex.Message}. {ex.StackTrace}");
        }
        private async Task IncluirCursoDoFuncionarioComErroAsync(FuncionarioCursoEol cursoDoFuncionarioParaIncluirGoogle, string mensagem)
        {
            var command = new IncluirCursoUsuarioErroCommand(
                cursoDoFuncionarioParaIncluirGoogle.Rf,
                cursoDoFuncionarioParaIncluirGoogle.TurmaId,
                cursoDoFuncionarioParaIncluirGoogle.ComponenteCurricularId,
                ExecucaoTipo.FuncionarioCursoAdicionar,
                ErroTipo.Negocio,
                mensagem);

            await mediator.Send(command);
        }
Ejemplo n.º 5
0
        public async Task <bool> Executar(AtribuirFuncionarioCursoDto atribuirFuncionarioCurso)
        {
            var funciorarioCursoEol = new FuncionarioCursoEol(atribuirFuncionarioCurso.Rf, atribuirFuncionarioCurso.TurmaId, atribuirFuncionarioCurso.ComponenteCurricularId);

            var publicarFuncionarioCurso = await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaFuncionarioCursoIncluir, RotasRabbit.FilaFuncionarioCursoIncluir, funciorarioCursoEol));

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

            return(publicarFuncionarioCurso);
        }
        private async Task Valida_Tratamento_De_Funcionario_Nao_Incluso_Deve_Retornar_False()
        {
            // Arrange
            var funcionarioCurso = new FuncionarioCursoEol(1234567, 1010, 6);

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

            var funcionarioCursoJson = JsonConvert.SerializeObject(funcionarioCurso);
            var mensagem             = new MensagemRabbit(funcionarioCursoJson);

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

            // Assert
            Assert.False(retorno);
        }