public void ReadFromEventLogTest() { string actualLogMessage = ""; bool called = false; EventLogSubscription.OnEntryWritten callback = (e) => { called = true; actualLogMessage = e.Message; }; EventLogSubscription tailer = new EventLogSubscription(logName, callback, null, null); tailer.Start(); string expectedLogMessage = Guid.NewGuid().ToString(); testLog.WriteEntry(expectedLogMessage); int count = 0; while (!called && count++ < 10) { Thread.Sleep(250); } Assert.True(count < 10); Assert.True(called); Assert.Equal(expectedLogMessage, actualLogMessage); }
public void HandlesCallbackExceptionTest() { bool called = false; EventLogSubscription.OnEntryWritten callback = (e) => { called = true; throw new Exception("My Exception"); }; StringWriter stdout = new StringWriter(); StringWriter stderr = new StringWriter(); EventLogSubscription tailer = new EventLogSubscription(logName, callback, stdout, stderr); tailer.Start(); testLog.WriteEntry(Guid.NewGuid().ToString()); int count = 0; while (!called && count++ < 10) { Thread.Sleep(250); } Assert.True(count < 10); Assert.Contains("My Exception", stderr.ToString()); }
public void OnlyReadsNewEventsTest() { const string lastMessage = "last message"; bool called = false; List <string> msgs = new List <string>(); EventLogSubscription.OnEntryWritten callback = (e) => { msgs.Add(e.Message); if (e.Message == lastMessage) { called = true; } }; using (EventLogSubscription tailer = new EventLogSubscription(logName, callback, null, null)) { string oldLogMessage = Guid.NewGuid().ToString(); for (int i = 0; i < 5; i++) { testLog.WriteEntry(oldLogMessage); } Tailer tailer = new Tailer(logName, callback, null, null); tailer.Start(); testLog.WriteEntry(lastMessage); int count = 0; while (!called && count++ < 40) { Thread.Sleep(250); } Assert.True(count < 10); Assert.Equal(1, msgs.Count); } }