Пример #1
0
        public void TestCtor1()
        {
            var logFile = new InMemoryLogSource();

            using (var search = new LogSourceSearch(_scheduler, logFile, "foobar", TimeSpan.Zero))
            {
                search.Matches.Should().BeEmpty("because the source is empty");
            }
        }
Пример #2
0
        public void TestAddListener1()
        {
            var logFile = new InMemoryLogSource();

            logFile.AddEntry("Hello World!");
            using (var search = new LogSourceSearch(_scheduler, logFile, "l", TimeSpan.Zero))
            {
                search.AddListener(_listener.Object);

                _scheduler.RunOnce();

                _matches.Should().Equal(new[]
                {
                    new LogMatch(0, new LogLineMatch(2, 1)),
                    new LogMatch(0, new LogLineMatch(3, 1)),
                    new LogMatch(0, new LogLineMatch(9, 1))
                });
            }
        }
Пример #3
0
        public void TestCtor2()
        {
            var logFile = new InMemoryLogSource();

            logFile.AddEntry("Hello World!");
            using (var search = new LogSourceSearch(_scheduler, logFile, "l", TimeSpan.Zero))
            {
                _scheduler.RunOnce();

                search.Count.Should().Be(3);
                var matches = search.Matches.ToList();
                matches.Should().Equal(new[]
                {
                    new LogMatch(0, new LogLineMatch(2, 1)),
                    new LogMatch(0, new LogLineMatch(3, 1)),
                    new LogMatch(0, new LogLineMatch(9, 1))
                });
            }
        }
Пример #4
0
        public void TestReset()
        {
            var logFile = new InMemoryLogSource();

            logFile.AddEntry("What's up people?");
            logFile.AddEntry("Hello World!");
            logFile.AddEntry("Looks like a bug");
            using (var search = new LogSourceSearch(_scheduler, logFile, "l", TimeSpan.Zero))
            {
                _scheduler.RunOnce();
                search.Matches.Should().HaveCount(6);

                logFile.Clear();
                search.Matches.Should().HaveCount(6);

                _scheduler.RunOnce();
                search.Matches.Should().HaveCount(0, "because we've cleared the log source");
            }
        }
Пример #5
0
        public void TestInvalidate2()
        {
            var logFile = new InMemoryLogSource();

            logFile.AddEntry("What's up people?");
            logFile.AddEntry("Hello World!");
            logFile.AddEntry("Looks like a bug");
            using (var search = new LogSourceSearch(_scheduler, logFile, "l", TimeSpan.Zero))
            {
                _scheduler.RunOnce();
                search.Matches.Should().HaveCount(6);

                logFile.RemoveFrom(0);
                search.Matches.Should().HaveCount(6);

                _scheduler.RunOnce();
                search.Matches.Should().HaveCount(0, "because we've removed all lines");
            }
        }
Пример #6
0
        public void TestDispose()
        {
            var logFile = new InMemoryLogSource();

            logFile.AddEntry("What's a foobar?");
            LogSourceSearch search;

            using (search = new LogSourceSearch(_scheduler, logFile, "foobar", TimeSpan.Zero))
            {
                search.IsDisposed.Should().BeFalse();
                _scheduler.PeriodicTaskCount.Should().Be(1);

                _scheduler.RunOnce();
                search.Count.Should().Be(1);
            }

            search.IsDisposed.Should().BeTrue();
            search.Count.Should().Be(0);
            _scheduler.PeriodicTaskCount.Should().Be(0);
        }
Пример #7
0
        public void TestInvalidate1()
        {
            var logFile = new InMemoryLogSource();

            logFile.AddEntry("What's up people?");
            logFile.AddEntry("Hello World!");
            logFile.AddEntry("Looks like a bug");
            using (var search = new LogSourceSearch(_scheduler, logFile, "l", TimeSpan.Zero))
            {
                _scheduler.RunOnce();
                search.Matches.Should().HaveCount(6);

                logFile.RemoveFrom(1);
                search.Matches.Should().HaveCount(6);

                _scheduler.RunOnce();
                search.Matches.Should().HaveCount(1, "because we've removed the second and third line, thus removing 5 of the 6 hits in the log source");
                search.Matches.Should().Equal(new LogMatch(0, new LogLineMatch(14, 1)));
            }
        }