public void GravarTarefaGeraLog() { var tituloTarefaEsperado = "Aprender API via testes com Moq"; var comando = new CadastraTarefa(tituloTarefaEsperado, new Categoria("Estudo"), new DateTime(2019, 12, 10)); var mockLogger = new Mock <ILogger <CadastraTarefaHandler> >(); var mock = new Mock <IRepositorioTarefas>(); LogLevel levelCapturado = LogLevel.Error; string mensagemCapturada = string.Empty; CapturaMensagemLog capturaTarefa = (level, eventId, state, exception, func) => { levelCapturado = level; mensagemCapturada = state.ToString(); }; mockLogger.Setup(l => l.Log( It.IsAny <LogLevel>(), It.IsAny <EventId>(), It.IsAny <object>(), It.IsAny <Exception>(), (Func <object, Exception, string>)It.IsAny <object>() )).Callback(capturaTarefa); var repo = mock.Object; var handler = new CadastraTarefaHandler(repo, mockLogger.Object); CommandResult resultado = handler.Execute(comando); Assert.Equal(LogLevel.Debug, levelCapturado); Assert.Contains(tituloTarefaEsperado, mensagemCapturada); }
public void DadaTarefaValidaDeveLogar() { //Given string tituloTarefaEsperado = "Estudar Xunit"; var comando = new CadastraTarefa(tituloTarefaEsperado, new Categoria("Estudo"), new DateTime(2019, 12, 31)); //Criando um moq do repositorio var moq = new Mock <IRepositorioTarefas>(); var moqLogger = new Mock <ILogger <CadastraTarefaHandler> >(); LogLevel levelCapturado = LogLevel.None; string mensagemCapturada = string.Empty; CapturaMensagemLog capturaMensagemLog = (level, eventId, state, exception, func) => { levelCapturado = level; mensagemCapturada = func(state, exception); }; moqLogger.Setup(x => x.Log( It.IsAny <LogLevel>(), It.IsAny <EventId>(), It.IsAny <object>(), It.IsAny <Exception>(), It.IsAny <Func <object, Exception, string> >() )) .Callback(capturaMensagemLog); var handler = new CadastraTarefaHandler(moq.Object, moqLogger.Object); //When CommandResult success = handler.Execute(comando); //Then Assert.Equal(LogLevel.Information, levelCapturado); Assert.Contains(tituloTarefaEsperado, mensagemCapturada); }
public void DadaTarefaComInfoValidasDeveLogar() { //arrange var tituloTarefaEsperado = "Usar Moq para aprofundar conhecimento de API"; var comando = new CadastraTarefa(tituloTarefaEsperado, new Categoria(100, "Estudo"), new DateTime(2019, 12, 31)); var mockLogger = new Mock <ILogger <CadastraTarefaHandler> >(); LogLevel levelCapturado = LogLevel.Error; string mensagemCapturada = string.Empty; CapturaMensagemLog captura = (level, eventId, state, exception, func) => { levelCapturado = level; mensagemCapturada = func(state, exception); }; mockLogger.Setup(l => l.Log( It.IsAny <LogLevel>(), //nível de log => LogError It.IsAny <EventId>(), //identificador do evento It.IsAny <object>(), //objeto que será logado It.IsAny <Exception>(), //exceção que será logada It.IsAny <Func <object, Exception, string> >() //função que converte objeto+exceção >> string) )).Callback(captura); var mock = new Mock <IRepositorioTarefas>(); var handler = new CadastraTarefaHandler(mock.Object, mockLogger.Object); //act handler.Execute(comando); //SUT >> CadastraTarefaHandlerExecute //assert Assert.Equal(LogLevel.Debug, levelCapturado); Assert.Contains(tituloTarefaEsperado, mensagemCapturada); }
public void DadaTarefaComInfoValidasDeveLogar() { //Arrange var mensagemEsperada = "Aprofundando o conhecimento em testes usando Moq"; var comando = new CadastraTarefa(mensagemEsperada, new Categoria("Estudo"), new DateTime(2021, 12, 31)); var mockLogger = new Mock <ILogger <CadastraTarefaHandler> >(); LogLevel levelCapturado = LogLevel.Error; string mensagemCapturada = string.Empty; CapturaMensagemLog captura = (level, eventId, state, exception, func) => { levelCapturado = level; mensagemCapturada = func(state, exception); }; var mock = new Mock <IRepositorioTarefas>(); mockLogger.Setup(l => l.Log( It.IsAny <LogLevel>(), It.IsAny <EventId>(), It.IsAny <object>(), It.IsAny <Exception>(), It.IsAny <Func <object, Exception, string> >() )).Callback(captura); var handler = new CadastraTarefaHandler(mock.Object, mockLogger.Object); //Act handler.Execute(comando); //Assert Assert.Equal(LogLevel.Debug, levelCapturado); Assert.Contains(mensagemEsperada, mensagemCapturada); }