public void TestMerge6() { var source0 = new InMemoryLogSource(); var source1 = new InMemoryLogSource(); var merged = new MergedLogSource(_taskScheduler, TimeSpan.Zero, source0, source1); var entries = Listen(merged); var modifications = ListenToChanges(merged, 1); merged.OnLogFileModified(source0, LogSourceModification.Reset()); merged.OnLogFileModified(source0, LogSourceModification.Reset()); merged.OnLogFileModified(source0, LogSourceModification.Reset()); merged.OnLogFileModified(source0, LogSourceModification.Reset()); merged.OnLogFileModified(source0, LogSourceModification.Reset()); merged.OnLogFileModified(source0, LogSourceModification.Reset()); merged.OnLogFileModified(source1, LogSourceModification.Reset()); DateTime timestamp = DateTime.Now; source1.AddEntry("Hello World", LevelFlags.Info, timestamp); _taskScheduler.RunOnce(); merged.GetProperty(Core.Properties.PercentageProcessed).Should().Be(Percentage.HundredPercent); entries.Count.Should().Be(1); entries[0].Index.Should().Be(0); entries[0].LogEntryIndex.Should().Be(0); entries[0].GetValue(Core.Columns.SourceId).Should().Be(new LogEntrySourceId(1)); entries[0].RawContent.Should().Be("Hello World"); entries[0].LogLevel.Should().Be(LevelFlags.Info); entries[0].Timestamp.Should().Be(timestamp); int count = modifications.Count; modifications.ElementAt(count - 2).Should().Be(LogSourceModification.Reset()); modifications.ElementAt(count - 1).Should().Be(LogSourceModification.Appended(0, 1)); }