Esempio n. 1
0
        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());
            //    }
            //}
        }
Esempio n. 2
0
        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
        }