public void TestDataSourceDoesntExist2() { var dataSource = new Mock <ISingleDataSource>(); var logFile = new Mock <ILogFile>(); logFile.Setup(x => x.GetValue(LogFileProperties.EmptyReason)).Returns(ErrorFlags.SourceDoesNotExist); logFile.Setup(x => x.GetValue(LogFileProperties.Size)).Returns((Size?)null); var filteredLogFile = new Mock <ILogFile>(); ILogFileListener listener = null; filteredLogFile.Setup(x => x.AddListener(It.IsAny <ILogFileListener>(), It.IsAny <TimeSpan>(), It.IsAny <int>())) .Callback((ILogFileListener l, TimeSpan t, int i) => listener = l); dataSource.Setup(x => x.UnfilteredLogFile).Returns(logFile.Object); dataSource.Setup(x => x.FullFileName).Returns(@"E:\Tailviewer\somefile.log"); dataSource.Setup(x => x.FilteredLogFile).Returns(filteredLogFile.Object); dataSource.Setup(x => x.Search).Returns(new Mock <ILogFileSearch>().Object); var dataSourceModel = new SingleDataSourceViewModel(dataSource.Object, _actionCenter.Object); var model = new LogViewerViewModel(dataSourceModel, _actionCenter.Object, _settings.Object, TimeSpan.Zero); model.LogEntryCount.Should().Be(0); model.NoEntriesExplanation.Should().Be("Can't find \"somefile.log\""); model.NoEntriesSubtext.Should().Be("It was last seen at E:\\Tailviewer"); logFile.Setup(x => x.GetValue(LogFileProperties.EmptyReason)).Returns(ErrorFlags.None); logFile.Setup(x => x.GetValue(LogFileProperties.Size)).Returns(Size.Zero); listener.OnLogFileModified(logFile.Object, new LogFileSection(0, 0)); model.Update(); model.NoEntriesExplanation.Should().Be("The data source is empty"); model.NoEntriesSubtext.Should().BeNull(); }
public void OnRead(int numberOfLinesRead) { if (numberOfLinesRead >= 0) { DateTime now = DateTime.Now; if (now - _lastReportedTime >= _maximumTime) { Flush(numberOfLinesRead, now); } else if (numberOfLinesRead - _lastNumberOfLines >= _maximumCount) { Flush(numberOfLinesRead, now); } } else if (_sentAnyData) //< We want to avoid sending multiple successive reset events { Reset(); _listener.OnLogFileModified(_logFile, LogFileSection.Reset); } }
public LogFileListenerNotifier(ILogFile logFile, ILogFileListener listener, TimeSpan maximumTime, int maximumCount) { if (logFile == null) throw new ArgumentNullException("logFile"); if (listener == null) throw new ArgumentNullException("listener"); _logFile = logFile; _listener = listener; _maximumTime = maximumTime; _maximumCount = maximumCount; Reset(); _listener.OnLogFileModified(logFile, LogFileSection.Reset); }
public LogFileListenerNotifier(ILogFile logFile, ILogFileListener listener, TimeSpan maximumTime, int maximumCount) { if (logFile == null) { throw new ArgumentNullException(nameof(logFile)); } if (listener == null) { throw new ArgumentNullException(nameof(listener)); } _logFile = logFile; _listener = listener; _maximumTime = maximumTime; _maximumCount = maximumCount; Reset(); _listener.OnLogFileModified(logFile, LogFileSection.Reset); }