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