Beispiel #1
0
        public void WatchingDependsOnFileName()
        {
            var firstLines = new List<string>()
            {
                "hello world",
                "foo bar",
                "lorem ipsum"
            };

            var tail = new Tail(TestFileName, Encoding.ASCII);
            int[] changeEventRaised = { 0 };
            tail.Changed += (o, e) => { ++changeEventRaised[0]; };
            tail.Watch();
            try
            {
                WriteTestLines(false, firstLines);
                Assert.AreNotEqual(0, changeEventRaised[0], "Change event has not been raised at all.");

                changeEventRaised[0] = 0;
                WriteTestLines(FakeTestFileName, false, firstLines);
                Assert.AreEqual(0, changeEventRaised[0], "Change event has been raised at changing of an indifferent file.");
            }
            finally
            {
                tail.StopWatching();
            }
        }
Beispiel #2
0
        public void WatchingWhileTargetIsGrowing()
        {
            var firstLines = new List<string>()
            {
                "hello world",
                "foo bar",
                "lorem ipsum"
            };
            var additionalLines = new List<string>()
            {
                "monday",
                "tuesday",
                "wednesday",
                "thursday",
                "friday"
            };

            var tail = new Tail(TestFileName, Encoding.ASCII);
            var results = new List<string>();
            int[] changeEventRaised = { 0 };
            tail.Changed += (o, e) => { ++changeEventRaised[0]; results.AddRange(e.NewLines); };
            tail.Watch();
            try
            {
                WriteTestLines(false, firstLines);
                Assert.AreNotEqual(0, changeEventRaised[0], "Change event has not been raised at all.");
                Assert.AreEqual(firstLines.Count, results.Count, "Mismatching count of collected lines.");

                changeEventRaised[0] = 0;
                results.Clear();
                WriteTestLines(true, additionalLines);
                Assert.AreNotEqual(0, changeEventRaised[0], "Change event has not been raised at all.");
                Assert.AreEqual(additionalLines.Count, results.Count, "Mismatching count of collected lines.");
            }
            finally
            {
                tail.StopWatching();
            }
        }