private static RunService GetRunServiceForSensorImpulseHandlingTest(IRaceClock raceClock)
        {
            var existingMeasurementsTimestamps = new[] { 1576850000.000, 1576850001.111, 1576850002.222 };

            var sensorMeasurementDaoMock = new Mock <ISensorMeasurementDao>();

            sensorMeasurementDaoMock.Setup(d => d.GetMeasurementsForRun(It.IsAny <Run>()))
            .Returns(Task.FromResult(
                         existingMeasurementsTimestamps.Select((t, i) => new SensorMeasurement
            {
                SensorId  = i,
                Timestamp = t
            })
                         ));

            var runDaoMock = new Mock <IRunDao>();

            runDaoMock.Setup(d => d.GetCurrentRun())
            .Returns(Task.FromResult(
                         new Run
            {
                Race = new Race {
                    NumberOfSensors = existingMeasurementsTimestamps.Length + 1
                }
            }
                         ));

            var daoProvider = DaoProviderHelper.GetPartialDaoProvider(
                runDao: runDaoMock.Object,
                sensorMeasurementDao: sensorMeasurementDaoMock.Object
                );

            return(new RunService(daoProvider, raceClock));
        }
 public RunService(DaoProvider daoProvider, IRaceClock raceClock) : base(daoProvider)
 {
     raceClock.TimingTriggered += HandleNewSensorMeasurement;
 }