public void CollectedValuesArePlotted() { var values = Enumerable.Range(0, 5).Select(x => DateTime.MinValue.AddHours(x)).Select(x => new DataValueAdapter(x, null)).ToList(); var probeReader = new MockProbeReader(values); var dataLogger = new Mock<IDataLoggerAdapter>(); dataLogger.Setup(x => x.Plot(It.IsAny<IEnumerable<DataValueAdapter>>())) .Callback<IEnumerable<DataValueAdapter>>(plottedValues => Assert.That(plottedValues, Is.EqualTo(values))); var dataPlotter = new ThreadSafeDataPlotter(new[] { probeReader }, dataLogger.Object); dataPlotter.Collect(5); dataLogger.Verify(d => d.Plot(It.IsAny<IEnumerable<DataValueAdapter>>())); }
public void CollectsValuesDespiteNonTerminatingProbeReaders() { var values = Enumerable.Range(0, 5).Select(x => DateTime.MinValue.AddHours(x)).Select(x => new DataValueAdapter(x, null)).ToList(); var probeReader = new MockProbeReader(values); var hangingProbeReader = new Mock<IProbeReaderAdapter>(); hangingProbeReader.Setup(x => x.Read()).Returns(Hang()); var probeReaderAdapters = new[] { hangingProbeReader.Object, probeReader, hangingProbeReader.Object}; var dataLogger = new Mock<IDataLoggerAdapter>(); dataLogger.Setup(x => x.Plot(It.IsAny<IEnumerable<DataValueAdapter>>())) .Callback<IEnumerable<DataValueAdapter>>(plottedValues => Assert.That(plottedValues, Is.EqualTo(values))); var dataPlotter = new ThreadSafeDataPlotter(probeReaderAdapters, dataLogger.Object); dataPlotter.Collect(5); dataLogger.Verify(d => d.Plot(It.IsAny<IEnumerable<DataValueAdapter>>())); }