public void TestCalculAverageFreezePrediction12hV2() { //GIVEN Mock <IDeviceRepository> deviceRepo = new Mock <IDeviceRepository>(); Mock <IAlarmRepository> alarmRepo = new Mock <IAlarmRepository>(); DateTime dateRef = new DateTime(2018, 02, 13, 6, 0, 0); Dictionary <DateTime, FreezeForecast.FreezingProbability> previsions3h = new Dictionary <DateTime, FreezeForecast.FreezingProbability>(); // 13/02 AM: risque ZERO previsions3h.Add(dateRef, FreezeForecast.FreezingProbability.ZERO); //6h previsions3h.Add(dateRef.AddHours(3), FreezeForecast.FreezingProbability.ZERO); //9h // 13/02 PM : risque MEDIUM(=2) previsions3h.Add(dateRef.AddHours(6), FreezeForecast.FreezingProbability.MINIMUM); //12h previsions3h.Add(dateRef.AddHours(9), FreezeForecast.FreezingProbability.MEDIUM); //15h previsions3h.Add(dateRef.AddHours(12), FreezeForecast.FreezingProbability.HIGH); //18h previsions3h.Add(dateRef.AddHours(15), FreezeForecast.FreezingProbability.IMMINENT); //21h // 14/02/2018 AM : risque HIGH(=3) previsions3h.Add(dateRef.AddHours(18), FreezeForecast.FreezingProbability.MINIMUM); //00:00 previsions3h.Add(dateRef.AddHours(21), FreezeForecast.FreezingProbability.MEDIUM); //3h previsions3h.Add(dateRef.AddHours(24), FreezeForecast.FreezingProbability.IMMINENT); //6h previsions3h.Add(dateRef.AddHours(27), FreezeForecast.FreezingProbability.IMMINENT); //9h // 14/02/2018 PM : risque HIGH(=3) previsions3h.Add(dateRef.AddHours(30), FreezeForecast.FreezingProbability.HIGH); //12h previsions3h.Add(dateRef.AddHours(33), FreezeForecast.FreezingProbability.IMMINENT); //15h previsions3h.Add(dateRef.AddHours(36), FreezeForecast.FreezingProbability.MEDIUM); //18h previsions3h.Add(dateRef.AddHours(39), FreezeForecast.FreezingProbability.HIGH); //21h // 15/02/2018 AM previsions3h.Add(dateRef.AddHours(42), FreezeForecast.FreezingProbability.ZERO);//00:00h //WHEN AlarmService service = new AlarmService(deviceRepo.Object, alarmRepo.Object); Dictionary <DateTime, FreezeForecast.FreezingProbability> prevsions12h = service.CalculAverageFreezePrediction12h(previsions3h); //THEN Check.That(prevsions12h).Contains(new Dictionary <DateTime, FreezeForecast.FreezingProbability> { { new DateTime(2018, 02, 13, 0, 0, 0), FreezeForecast.FreezingProbability.ZERO }, { new DateTime(2018, 02, 13, 12, 0, 0), FreezeForecast.FreezingProbability.MEDIUM }, { new DateTime(2018, 02, 14, 00, 0, 0), FreezeForecast.FreezingProbability.HIGH }, { new DateTime(2018, 02, 14, 12, 0, 0), FreezeForecast.FreezingProbability.HIGH }, { new DateTime(2018, 02, 15, 00, 0, 0), FreezeForecast.FreezingProbability.ZERO } }); }