public async Task does_not_download_when_data_is_up_to_date( short minNumberOfMeasurements) { // Arrange const short numberOfDays = 1; var downloadedData = new Measurements(); var startDate = DateTime.UtcNow.AddHours(-(2 * minNumberOfMeasurements) + 1); _context.AddAllMeasurementsToDatabase( _installationIds, startDate, numberOfDays, minNumberOfMeasurements); _downloaderMock.Setup(x => x.DownloadAirQualityData(It.IsAny <short>())) .ReturnsAsync(downloadedData); var programController = new ProgramController( unitOfWork: _unitOfWork, installationIds: _installationIds, airlyMeasurementsDownloader: _downloaderMock.Object, minNumberOfMeasurements: minNumberOfMeasurements); // Act var newMeasurementsList = await programController.DownloadAllAirQualityData(); // Assert _downloaderMock.Verify( x => x.DownloadAirQualityData(It.IsAny <short>()), Times.Never()); }
public async Task download_for_all_installations_when_no_measurements_in_database() { // Arrange var downloadedData = new Measurements(); foreach (short installationId in _installationIds) { _downloaderMock.Setup(x => x.DownloadAirQualityData(installationId)) .ReturnsAsync(downloadedData); } var programController = new ProgramController( unitOfWork: _unitOfWork, installationIds: _installationIds, airlyMeasurementsDownloader: _downloaderMock.Object); // Act var newMeasurementsList = await programController.DownloadAllAirQualityData(); // Assert _downloaderMock.Verify( x => x.DownloadAirQualityData(It.IsAny <short>()), Times.Exactly(_installationIds.Count)); }
public async Task download_for_some_installations_when_some_data_is_out_of_date() { // Arrange const short numberOfDays = 1; var downloadedData = new Measurements(); var installationIds = new List <short>(); var startDate = DateTime.UtcNow.AddHours(-(2 * _minNumberOfMeasurements)); for (int i = 0; i < _installationIds.Count; i++) { _context.AddMeasurementsToDatabase( _installationIds[i], startDate, numberOfDays, _minNumberOfMeasurements); if (i % 2 == 0) { _context.AddMeasurementsToDatabase( _installationIds[i], startDate.AddHours(_minNumberOfMeasurements), numberOfDays, _minNumberOfMeasurements); } else { _downloaderMock.Setup(x => x.DownloadAirQualityData(_installationIds[i])) .ReturnsAsync(downloadedData); } } var programController = new ProgramController( unitOfWork: _unitOfWork, installationIds: _installationIds, airlyMeasurementsDownloader: _downloaderMock.Object, minNumberOfMeasurements: _minNumberOfMeasurements); // Act var newMeasurementsList = await programController.DownloadAllAirQualityData(); // Assert _downloaderMock.Verify( x => x.DownloadAirQualityData(It.IsAny <short>()), Times.Exactly((int)Math.Ceiling((double)_installationIds.Count / 2))); }