public async Task SaveCollectionZipAsync( string zipFileName, string container, MetaData metaDatas, DevolvedPostcodes devolvedPostcodes, IReadOnlyCollection <Employer> employers, IReadOnlyCollection <EPAOrganisation> epaOrganisations, IReadOnlyCollection <LARSFrameworkDesktop> larsFrameworks, IReadOnlyCollection <LARSFrameworkAimDesktop> larsFrameworkAims, IReadOnlyCollection <LARSLearningDelivery> larsLearningDeliveries, IReadOnlyCollection <LARSStandard> larsStandards, IReadOnlyCollection <Organisation> organisations, IReadOnlyCollection <Postcode> postcodes, CancellationToken cancellationToken) { _logger.LogInfo("Starting Zip File Creation"); using (var stream = await _fileService.OpenWriteStreamAsync(zipFileName, container, cancellationToken)) { using (var zipArchive = new ZipArchive(stream, ZipArchiveMode.Create, true)) { AddFileToZip(zipArchive, DesktopReferenceDataConstants.MetaDataFile, metaDatas); AddFileToZip(zipArchive, DesktopReferenceDataConstants.DevolvedPostcodesFile, devolvedPostcodes.Postcodes); AddFileToZip(zipArchive, DesktopReferenceDataConstants.DevolvedMcaGlaSofFile, devolvedPostcodes.McaGlaSofLookups); AddFileToZip(zipArchive, DesktopReferenceDataConstants.EmployersFile, employers); AddFileToZip(zipArchive, DesktopReferenceDataConstants.EPAOrganisationsFile, epaOrganisations); AddFileToZip(zipArchive, DesktopReferenceDataConstants.LARSFrameworksFile, larsFrameworks); AddFileToZip(zipArchive, DesktopReferenceDataConstants.LARSFrameworkAimsFile, larsFrameworkAims); AddFileToZip(zipArchive, DesktopReferenceDataConstants.LARSLearningDeliveriesFile, larsLearningDeliveries); AddFileToZip(zipArchive, DesktopReferenceDataConstants.LARSStandardsFile, larsStandards); AddFileToZip(zipArchive, DesktopReferenceDataConstants.OrganisationsFile, organisations); AddFileToZip(zipArchive, DesktopReferenceDataConstants.PostcodesFile, postcodes); } _logger.LogInfo("Finished Zip File Creation"); } }
public async Task RetrieveAsync() { var cancellationToken = CancellationToken.None; IReadOnlyCollection <string> postcodes = new List <string> { "POSTCODE1", "POSTCODE2", "POSTCODE3", "POSTCODE4" }; var json = @"[""POSTCODE1"",""POSTCODE2"",""POSTCODE3"",""POSTCODE4""]"; var mcaGlataskResult = new TaskCompletionSource <List <McaGlaSofLookup> >(); var devolvedPostcodesTaskResult = new TaskCompletionSource <List <DevolvedPostcode> >(); var devolvedPostcodes = new DevolvedPostcodes { McaGlaSofLookups = new List <McaGlaSofLookup> { new McaGlaSofLookup { SofCode = "105", McaGlaFullName = "Full Name 1", McaGlaShortCode = "ShortCode 1", EffectiveFrom = new DateTime(2019, 8, 1) }, new McaGlaSofLookup { SofCode = "110", McaGlaFullName = "Full Name 2", McaGlaShortCode = "ShortCode 2", EffectiveFrom = new DateTime(2019, 8, 1) } }, Postcodes = new List <DevolvedPostcode> { new DevolvedPostcode { Postcode = "POSTCODE1", Area = "Area", SourceOfFunding = "105", EffectiveFrom = new DateTime(2019, 8, 1) }, new DevolvedPostcode { Postcode = "POSTCODE3", Area = "Area", SourceOfFunding = "105", EffectiveFrom = new DateTime(2019, 8, 1) }, new DevolvedPostcode { Postcode = "POSTCODE3", Area = "Area", SourceOfFunding = "110", EffectiveFrom = new DateTime(2019, 8, 1) } } }; mcaGlataskResult.SetResult(devolvedPostcodes.McaGlaSofLookups); devolvedPostcodesTaskResult.SetResult(devolvedPostcodes.Postcodes); var postcodesContextMock = new Mock <IPostcodesContext>(); var postcodesContextFactoryMock = new Mock <IDbContextFactory <IPostcodesContext> >(); var jsonSerializationMock = new Mock <IJsonSerializationService>(); postcodesContextFactoryMock.Setup(c => c.Create()).Returns(postcodesContextMock.Object); jsonSerializationMock.Setup(sm => sm.Serialize(postcodes)).Returns(json); var service = NewServiceMock(postcodesContextFactoryMock.Object, jsonSerializationService: jsonSerializationMock.Object); service.Setup(s => s.RetrieveMcaGlaLookups(postcodesContextMock.Object, cancellationToken)).Returns(mcaGlataskResult.Task); service.Setup(s => s.RetrieveDevolvedPostcodes(json, cancellationToken)).Returns(devolvedPostcodesTaskResult.Task); var serviceResult = await service.Object.RetrieveAsync(postcodes, cancellationToken); serviceResult.Should().BeEquivalentTo(devolvedPostcodes); }