public async Task TestSupplementaryDataSave() { var store = new StoreESF(); var cancellationToken = default(CancellationToken); const int fileId = 1; var model = new List <SupplementaryDataModel> { SupplementaryDataModelBuilder.BuildSupplementaryData() }; //using (SqlConnection connection = // new SqlConnection(ConfigurationManager.AppSettings["TestConnectionString"])) //{ // SqlTransaction transaction = null; // try // { // await connection.OpenAsync(cancellationToken); // transaction = connection.BeginTransaction(); // await store.StoreAsync(connection, transaction, fileId, model, cancellationToken); // transaction.Commit(); // } // catch (Exception ex) // { // _output.WriteLine(ex.ToString()); // try // { // transaction?.Rollback(); // } // catch (Exception ex2) // { // _output.WriteLine(ex2.ToString()); // } // Assert.True(false); // } // using (SqlCommand sqlCommand = // new SqlCommand($"SELECT Count(1) FROM dbo.SupplementaryData Where ConRefNumber = '{model[0].ConRefNumber}'", connection)) // { // Assert.Equal(model.Count, sqlCommand.ExecuteScalar()); // } //} }
public async Task TestFundingSummaryReportGeneration() { var dateTime = DateTime.UtcNow; var filename = $"10005752_1_ESF Funding Summary Report {dateTime:yyyyMMdd-HHmmss}"; byte[] xlsx = null; Mock <IDateTimeProvider> dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(dateTime); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(It.IsAny <DateTime>())).Returns(dateTime); Mock <IStreamableKeyValuePersistenceService> storage = new Mock <IStreamableKeyValuePersistenceService>(); storage.Setup(x => x.SaveAsync($"{filename}.xlsx", It.IsAny <Stream>(), It.IsAny <CancellationToken>())).Callback <string, Stream, CancellationToken>( (key, value, ct) => { value.Seek(0, SeekOrigin.Begin); using (MemoryStream ms = new MemoryStream()) { value.CopyTo(ms); xlsx = ms.ToArray(); } }) .Returns(Task.CompletedTask); IList <IRowHelper> rowHelpers = GenerateRowHelpersWithStrategies(); var supplementaryDataService = new Mock <ISupplementaryDataService>(); supplementaryDataService .Setup(s => s.GetSupplementaryData(It.IsAny <IEnumerable <SourceFileModel> >(), It.IsAny <CancellationToken>())) .ReturnsAsync(new Dictionary <int, IEnumerable <SupplementaryDataYearlyModel> >()); supplementaryDataService .Setup(s => s.GetImportFiles(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new List <SourceFileModel>()); Mock <IReferenceDataCache> referenceDataCache = new Mock <IReferenceDataCache>(); referenceDataCache.Setup(m => m.GetLarsVersion(It.IsAny <CancellationToken>())).Returns("123456"); referenceDataCache.Setup(m => m.GetOrganisationVersion(It.IsAny <CancellationToken>())).Returns("234567"); referenceDataCache.Setup(m => m.GetPostcodeVersion(It.IsAny <CancellationToken>())).Returns("345678"); referenceDataCache.Setup(m => m.GetProviderName(It.IsAny <int>(), It.IsAny <CancellationToken>())).Returns("Foo College"); Mock <IVersionInfo> versionInfo = new Mock <IVersionInfo>(); versionInfo.Setup(m => m.ServiceReleaseVersion).Returns("1.2.3.4"); var valueProvider = new ValueProvider(); var excelStyleProvider = new ExcelStyleProvider(); IList <FM70PeriodisedValuesYearlyModel> periodisedValues = new List <FM70PeriodisedValuesYearlyModel>(); var ilrMock = new Mock <IILRService>(); ilrMock.Setup(m => m.GetYearlyIlrData(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(periodisedValues); ilrMock.Setup(m => m.GetIlrFileDetails(It.IsAny <int>(), It.IsAny <CancellationToken>())) .ReturnsAsync(GetTestFileDetail()); var fundingSummaryReport = new FundingSummaryReport( dateTimeProviderMock.Object, valueProvider, storage.Object, ilrMock.Object, supplementaryDataService.Object, rowHelpers, referenceDataCache.Object, excelStyleProvider, versionInfo.Object); SourceFileModel sourceFile = GetEsfSourceFileModel(); SupplementaryDataWrapper wrapper = new SupplementaryDataWrapper(); wrapper.SupplementaryDataModels = SupplementaryDataModelBuilder.GetModels(); await fundingSummaryReport.GenerateReport(wrapper, sourceFile, null, CancellationToken.None); storage.Verify(s => s.SaveAsync($"{filename}.xlsx", It.IsAny <Stream>(), It.IsAny <CancellationToken>())); Assert.NotEmpty(xlsx); #if DEBUG File.WriteAllBytes($"{filename}.xlsx", xlsx); #endif }