public void LogALogEventShouldNotAppendItToRemovedAppender()
        {
            var mediator = new AppenderMediator();
            var appender = new Mock <IAppender>(MockBehavior.Strict);

            mediator.Subscribe(appender.Object);
            mediator.Unsubscribe(appender.Object);
            _logEvent = BuildLogEvent();
            mediator.Log(_logEvent);
            appender.VerifyAll();
        }
        public void LogALogEventShouldAppendItToExistingAppender()
        {
            var mediator = new AppenderMediator();
            var appender = new Mock <IAppender>();

            mediator.Subscribe(appender.Object);
            _logEvent = new LogEvent(0, LogLevel.Error, "topic", "message", DateTime.Now, 0, "1", 1);
            mediator.Log(_logEvent);
            appender.Verify(x => x.Append(_logEvent));
            appender.VerifyAll();
        }
        public void AddAnAppenderShouldLogAnyPreviousLogEvent()
        {
            var mediator = new AppenderMediator();

            _logEvent  = BuildLogEvent();
            _logEvent2 = BuildLogEvent();
            mediator.Log(_logEvent);
            mediator.Log(_logEvent2);
            var appender = new Mock <IAppender>();

            mediator.Subscribe(appender.Object);
            appender.Verify(x => x.Append(_logEvent));
            appender.Verify(x => x.Append(_logEvent2));
            appender.VerifyAll();
        }