Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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);
            }
        }