public void TestFlush1() { var collection = new LogFileListenerCollection(new Mock <ILogFile>().Object); var listener = new Mock <ILogFileListener>(); var sections = new List <LogFileSection>(); listener.Setup(x => x.OnLogFileModified(It.IsAny <ILogFile>(), It.IsAny <LogFileSection>())) .Callback((ILogFile file, LogFileSection y) => sections.Add(y)); collection.AddListener(listener.Object, TimeSpan.FromHours(1), 1000); collection.OnRead(1); sections.Should().Equal(new object[] { LogFileSection.Reset }); collection.Flush(); sections.Should().Equal(new object[] { LogFileSection.Reset, new LogFileSection(0, 1) }, "Because Flush() should force calling the OnLogFileModified method"); }
public void TestAddListener1() { ILogFile logFile = new Mock <ILogFile>().Object; var collection = new LogFileListenerCollection(logFile); var listener = new Mock <ILogFileListener>(); var sections = new List <LogFileSection>(); listener.Setup(x => x.OnLogFileModified(It.IsAny <ILogFile>(), It.IsAny <LogFileSection>())) .Callback((ILogFile file, LogFileSection y) => sections.Add(y)); collection.AddListener(listener.Object, TimeSpan.FromSeconds(1), 10); new Action(() => collection.AddListener(listener.Object, TimeSpan.FromSeconds(1), 10)).Should().NotThrow(); collection.OnRead(10); sections.Should().Equal(new[] { LogFileSection.Reset, new LogFileSection(0, 10) }, "Because even though we added the listener twice, it should never be invoked twice"); }
public void Setup() { _entries = new List <LogLine>(); _logFile = new Mock <ILogFile>(); _listeners = new LogFileListenerCollection(_logFile.Object); _logFile.Setup(x => x.EndOfSourceReached).Returns(true); _logFile.Setup(x => x.GetSection(It.IsAny <LogFileSection>(), It.IsAny <LogLine[]>())) .Callback( (LogFileSection section, LogLine[] entries) => _entries.CopyTo((int)section.Index, entries, 0, section.Count)); _logFile.Setup(x => x.AddListener(It.IsAny <ILogFileListener>(), It.IsAny <TimeSpan>(), It.IsAny <int>())) .Callback((ILogFileListener listener, TimeSpan maximumWaitTime, int maximumLineCount) => _listeners.AddListener(listener, maximumWaitTime, maximumLineCount)); _logFile.Setup(x => x.RemoveListener(It.IsAny <ILogFileListener>())) .Callback((ILogFileListener listener) => _listeners.RemoveListener(listener)); _logFile.Setup(x => x.GetLine(It.IsAny <int>())).Returns((int index) => _entries[index]); _logFile.Setup(x => x.Count).Returns(() => _entries.Count); }
public void Setup() { _scheduler = new ManualTaskScheduler(); _logFile = new Mock <ILogFile>(); _listeners = new LogFileListenerCollection(_logFile.Object); _logFile.Setup(x => x.AddListener(It.IsAny <ILogFileListener>(), It.IsAny <TimeSpan>(), It.IsAny <int>())) .Callback((ILogFileListener listener, TimeSpan maximumWaitTime, int maximumLineCount) => _listeners.AddListener(listener, maximumWaitTime, maximumLineCount)); _logFile.Setup(x => x.RemoveListener(It.IsAny <ILogFileListener>())) .Callback((ILogFileListener listener) => _listeners.RemoveListener(listener)); _listener = new Mock <ILogFileListener>(); _modifications = new List <LogFileSection>(); _listener.Setup(x => x.OnLogFileModified(It.IsAny <ILogFile>(), It.IsAny <LogFileSection>())) .Callback((ILogFile logFile, LogFileSection section) => _modifications.Add(section)); }