public void ProcessMessagesMustDisableQueueWhenExceptionIsCaught()
 {
     using StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor { Exception = new WriteMessagesException() };
     Assert.False(processor.IsQueueDisabled);
     processor.InvokeProcessMessages();
     Assert.True(processor.IsQueueDisabled);
 }
 public void GetProcessorThreadMustCreateBackgroundThreadWhenCalled()
 {
     using StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor();
     processor.Process("Test");
     Assert.True(processor.GetThread().IsBackground);
     Assert.Equal($"{nameof(ConsoleLoggerProcessor)}", processor.GetThread().Name);
 }
 public void EnqueueMustHandleInvalidOperationExceptionWhenAddToQueueThrowsInvalidOperationException()
 {
     using StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor { Exception = new InvalidOperationException() };
     Assert.True(processor.GetQueue().Count == 0);
     processor.InvokeEnqueue("Test");
     Assert.True(processor.GetQueue().Count == 0);
 }
 public void ProcessMustNotQueueMessageWhenQueueIsNotEnabled()
 {
     using StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor();
     processor.InvokeDisableQueue();
     processor.Process("Test");
     Assert.True(processor.EnqueueCalled == 0);
     Assert.True(processor.WriteMessageCalled == 1);
 }
        public void DisposeMustDispose()
        {
            StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor();

            processor.Dispose();
            Assert.True(processor.IsQueueDisabled);
            Assert.Equal(ThreadState.Stopped, processor.GetThread().ThreadState);
        }
        public void DisposeMustHandleThreadStateException()
        {
            StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor {
                Exception = new ThreadStateException()
            };

            processor.Dispose();
            Assert.True(processor.HandleThreadStateExceptionCalled == 1);
        }
 public void ProcessMustQueueMessageWhenQueueIsEnabled()
 {
     using StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor();
     processor.Process("Test");
     Assert.True(processor.EnqueueCalled == 1);
 }
 public void DisableQueueMustHandleExceptionWhenAnyExceptionOccurs()
 {
     using StubConsoleLoggerProcessor processor = new StubConsoleLoggerProcessor { Exception = new TerminateQueuingException() };
     processor.InvokeDisableQueue();
     processor.Exception = null;
 }