public void GetValidatedFiles_WhenInvoked_GetsValidatedFiles() { databaseConnectionServiceMock.When(service => service.ExecuteStoredProcedure("[FoldingCoin].[GetValidatedFiles]", Arg.Any <IEnumerable <DbParameter> >(), Arg.Any <DataTable>())).Do( callInfo => { var dataTable = callInfo.Arg <DataTable>(); dataTable.Columns.Add(new DataColumn("DownloadId", typeof(int))); dataTable.Columns.Add(new DataColumn("DownloadDateTime", typeof(DateTime))); dataTable.Columns.Add(new DataColumn("FilePath", typeof(string))); DataRow user1 = dataTable.NewRow(); dataTable.Rows.Add(user1); user1["DownloadId"] = 1; user1["DownloadDateTime"] = DateTime.Today.AddMinutes(1); user1["FilePath"] = "FilePath1"; DataRow user2 = dataTable.NewRow(); dataTable.Rows.Add(user2); user2["DownloadId"] = 2; user2["DownloadDateTime"] = DateTime.Today.AddMinutes(2); user2["FilePath"] = "FilePath2"; dataTable.AcceptChanges(); }); IList <ValidatedFile> actual = systemUnderTest.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue); Assert.That(actual.Count, Is.EqualTo(2)); Assert.That(actual[0].DownloadId, Is.EqualTo(1)); Assert.That(actual[0].DownloadDateTime, Is.EqualTo(DateTime.Today.AddMinutes(1))); Assert.That(actual[0].FilePath, Is.EqualTo("FilePath1")); Assert.That(actual[1].DownloadId, Is.EqualTo(2)); Assert.That(actual[1].DownloadDateTime, Is.EqualTo(DateTime.Today.AddMinutes(2))); Assert.That(actual[1].FilePath, Is.EqualTo("FilePath2")); }
public void GetValidatedFiles_WhenInvoked_DefersToInnerService() { var expected = new[] { new ValidatedFile(), new ValidatedFile() }; innerServiceMock.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue).Returns(expected); IList <ValidatedFile> actual = systemUnderTest.GetValidatedFiles(DateTime.MinValue, DateTime.MaxValue); Assert.That(actual, Is.EqualTo(expected)); }
public IList <ValidatedFile> GetValidatedFiles(DateTime startDate, DateTime endDate) { IList <ValidatedFile> results = innerService.GetValidatedFiles(startDate, endDate); if (results is null || results.Count == 0) { throw new NoAvailableStatsFilesException(); } return(results); }
private async Task <ParseResults[]> GetValidatedFiles(DateTime startDate, DateTime endDate) { loggingService.LogMethodInvoked(); IList <ValidatedFile> validatedFiles = databaseService.GetValidatedFiles(startDate, endDate); IOrderedEnumerable <ValidatedFile> orderedFiles = validatedFiles.OrderBy(file => file.DownloadDateTime); ValidatedFile firstFile = orderedFiles.First(); ValidatedFile lastFile = orderedFiles.Last(); loggingService.LogVerbose( $"First File: DownloadId={firstFile.DownloadId} DownloadDateTime={firstFile.DownloadDateTime}"); loggingService.LogVerbose( $"Last File: DownloadId={lastFile.DownloadId} DownloadDateTime={lastFile.DownloadDateTime}"); Task <ParseResults> firstResultTask = GetValidatedFile(firstFile); Task <ParseResults> lastResultTask = GetValidatedFile(lastFile); ParseResults[] results = await Task.WhenAll(firstResultTask, lastResultTask); loggingService.LogMethodFinished(); return(results); }
public IList <ValidatedFile> GetValidatedFiles(DateTime startDate, DateTime endDate) { return(GetOrAdd(() => innerService.GetValidatedFiles(startDate, endDate), DateTimeOffset.Now.AddHours(cacheDurationInHours), $"{startDate}-{endDate}")); }