public void AutoFlushTargetWrapperAsyncTest1() { var myTarget = new MyAsyncTarget(); var wrapper = new AutoFlushTargetWrapper(myTarget); ((ISupportsInitialize)myTarget).Initialize(); ((ISupportsInitialize)wrapper).Initialize(); var logEvent = new LogEventInfo(); Exception lastException = null; var continuationHit = new ManualResetEvent(false); AsyncContinuation continuation = ex => { lastException = ex; continuationHit.Set(); }; wrapper.WriteLogEvent(logEvent, continuation); continuationHit.WaitOne(); Assert.IsNull(lastException); Assert.AreEqual(1, myTarget.FlushCount); Assert.AreEqual(1, myTarget.WriteCount); continuationHit.Reset(); wrapper.WriteLogEvent(logEvent, continuation); continuationHit.WaitOne(); Assert.IsNull(lastException); Assert.AreEqual(2, myTarget.WriteCount); Assert.AreEqual(2, myTarget.FlushCount); }
public void AutoFlushTargetWrapperAsyncWithExceptionTest1() { var myTarget = new MyAsyncTarget { ThrowExceptions = true, }; var wrapper = new AutoFlushTargetWrapper(myTarget); ((ISupportsInitialize)myTarget).Initialize(); ((ISupportsInitialize)wrapper).Initialize(); var logEvent = new LogEventInfo(); Exception lastException = null; var continuationHit = new ManualResetEvent(false); AsyncContinuation continuation = ex => { lastException = ex; continuationHit.Set(); }; wrapper.WriteLogEvent(logEvent, continuation); continuationHit.WaitOne(); Assert.IsNotNull(lastException); Assert.IsInstanceOfType(lastException, typeof(InvalidOperationException)); // no flush on exception Assert.AreEqual(0, myTarget.FlushCount); Assert.AreEqual(1, myTarget.WriteCount); continuationHit.Reset(); lastException = null; wrapper.WriteLogEvent(logEvent, continuation); continuationHit.WaitOne(); Assert.IsNotNull(lastException); Assert.IsInstanceOfType(lastException, typeof(InvalidOperationException)); Assert.AreEqual(0, myTarget.FlushCount); Assert.AreEqual(2, myTarget.WriteCount); }
public void AutoFlushTargetWrapperSyncTest1() { var myTarget = new MyTarget(); var wrapper = new AutoFlushTargetWrapper { WrappedTarget = myTarget, }; ((ISupportsInitialize)myTarget).Initialize(); ((ISupportsInitialize)wrapper).Initialize(); var logEvent = new LogEventInfo(); Exception lastException = null; bool continuationHit = false; AsyncContinuation continuation = ex => { lastException = ex; continuationHit = true; }; wrapper.WriteLogEvent(logEvent, continuation); Assert.IsTrue(continuationHit); Assert.IsNull(lastException); Assert.AreEqual(1, myTarget.FlushCount); Assert.AreEqual(1, myTarget.WriteCount); continuationHit = false; wrapper.WriteLogEvent(logEvent, continuation); Assert.IsTrue(continuationHit); Assert.IsNull(lastException); Assert.AreEqual(2, myTarget.WriteCount); Assert.AreEqual(2, myTarget.FlushCount); }