コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }