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); }
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); }