protected void GivenLogReader(string logFileName, long length, int maxStreams) { LogReaderFactory.Setup(x => x.Create(logFileName, It.IsInRange(0L, Math.Max(CurrentLogFilePosition, length), Range.Inclusive))) .Returns((string fileName, long position) => { var internalPosition = position > length ? length : position; var streamsLeft = maxStreams; var reader = _mockRepository.Create <ILogReader>(); reader.SetupGet(x => x.Position).Returns(() => internalPosition); reader.Setup(x => x.ReadLine()).Returns(() => { internalPosition++; streamsLeft--; if (internalPosition > length || streamsLeft < 0) { internalPosition = length; return(new MemoryStream()); } return(new MemoryStream(new byte[1])); }); reader.Setup(x => x.Dispose()).Callback(() => { reader.Reset(); }); return(reader.Object); }); }
protected void GivenLogReaderCreateIOError(string fileName, long position) { LogReaderFactory.Setup(x => x.Create(fileName, position)).Throws <IOException>(); }