From f32a5ca73aea430df2171aed96b5d5d64aa0e66e Mon Sep 17 00:00:00 2001 From: jvandaal Date: Fri, 24 Jan 2025 10:55:52 +0100 Subject: [PATCH] fix: only add change files when extract request is not informative --- .../Extracts/RoadNetworkExtractEventModule.cs | 3 +- .../GradeSeparatedJunctionArchiveWriter.cs | 5 +- .../RoadNodesToZipArchiveWriter.cs | 4 +- ...uropeanRoadAttributesToZipArchiveWriter.cs | 5 +- ...SegmentLaneAttributesToZipArchiveWriter.cs | 5 +- ...ationalRoadAttributesToZipArchiveWriter.cs | 5 +- ...umberedRoadAttributesToZipArchiveWriter.cs | 5 +- ...mentSurfaceAttributesToZipArchiveWriter.cs | 5 +- ...egmentWidthAttributesToZipArchiveWriter.cs | 5 +- .../RoadSegmentsToZipArchiveWriter.cs | 5 +- .../RoadNetworkExtractAssemblyRequest.cs | 17 ++-- .../IntegrationToZipArchiveWriterFixture.cs | 5 +- ...NetworkExtractToZipArchiveWriterFixture.cs | 3 +- .../RoadNodesToZipArchiveWriterFixture.cs | 5 +- .../TransactionZoneToZipArchiveWriterTests.cs | 8 +- ...adNetworkExtractToZipArchiveWriterTests.cs | 88 ++++++++++++++++++- 16 files changed, 140 insertions(+), 33 deletions(-) diff --git a/src/RoadRegistry.BackOffice.Handlers/Extracts/RoadNetworkExtractEventModule.cs b/src/RoadRegistry.BackOffice.Handlers/Extracts/RoadNetworkExtractEventModule.cs index decd5aee6..2ca58015a 100644 --- a/src/RoadRegistry.BackOffice.Handlers/Extracts/RoadNetworkExtractEventModule.cs +++ b/src/RoadRegistry.BackOffice.Handlers/Extracts/RoadNetworkExtractEventModule.cs @@ -184,7 +184,8 @@ await queue.Write(new Command( new ExternalExtractRequestId(message.Body.ExternalRequestId), new DownloadId(message.Body.DownloadId), new ExtractDescription(extractDescription), - GeometryTranslator.Translate(message.Body.Contour)); + GeometryTranslator.Translate(message.Body.Contour), + message.Body.IsInformative); try { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/GradeSeparatedJunctionArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/GradeSeparatedJunctionArchiveWriter.cs index 79582a691..10b7c7260 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/GradeSeparatedJunctionArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/GradeSeparatedJunctionArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.GradeSeparatedJuntions; -using FeatureCompare; using Microsoft.IO; public class GradeSeparatedJunctionArchiveWriter : IZipArchiveWriter @@ -33,7 +32,9 @@ public async Task WriteAsync( request.Contour, cancellationToken); const ExtractFileName extractFilename = ExtractFileName.RltOgkruising; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadNodesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadNodesToZipArchiveWriter.cs index 25912c839..76d050589 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadNodesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadNodesToZipArchiveWriter.cs @@ -32,7 +32,9 @@ public async Task WriteAsync( var nodes = await zipArchiveDataProvider.GetRoadNodes(request.Contour, cancellationToken); const ExtractFileName extractFilename = ExtractFileName.Wegknoop; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentEuropeanRoadAttributesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentEuropeanRoadAttributesToZipArchiveWriter.cs index 176711497..4808daecd 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentEuropeanRoadAttributesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentEuropeanRoadAttributesToZipArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentEuropeanRoadAttributesToZipArchiveWriter : IZipArchiveWriter @@ -35,7 +34,9 @@ public async Task WriteAsync( cancellationToken); const ExtractFileName extractFilename = ExtractFileName.AttEuropweg; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentLaneAttributesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentLaneAttributesToZipArchiveWriter.cs index d35a73bbd..90ead6f9e 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentLaneAttributesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentLaneAttributesToZipArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentLaneAttributesToZipArchiveWriter : IZipArchiveWriter @@ -32,7 +31,9 @@ public async Task WriteAsync(ZipArchive archive, RoadNetworkExtractAssemblyReque cancellationToken); const ExtractFileName extractFilename = ExtractFileName.AttRijstroken; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNationalRoadAttributesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNationalRoadAttributesToZipArchiveWriter.cs index 82e1fa93f..06ab05f26 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNationalRoadAttributesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNationalRoadAttributesToZipArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentNationalRoadAttributesToZipArchiveWriter : IZipArchiveWriter @@ -35,7 +34,9 @@ public async Task WriteAsync( cancellationToken); const ExtractFileName extractFilename = ExtractFileName.AttNationweg; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNumberedRoadAttributesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNumberedRoadAttributesToZipArchiveWriter.cs index 3b9f34db1..ff14288e9 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNumberedRoadAttributesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentNumberedRoadAttributesToZipArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentNumberedRoadAttributesToZipArchiveWriter : IZipArchiveWriter @@ -35,7 +34,9 @@ public async Task WriteAsync( cancellationToken); const ExtractFileName extractFilename = ExtractFileName.AttGenumweg; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentSurfaceAttributesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentSurfaceAttributesToZipArchiveWriter.cs index d4464eb64..4810ecc3c 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentSurfaceAttributesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentSurfaceAttributesToZipArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentSurfaceAttributesToZipArchiveWriter : IZipArchiveWriter @@ -34,7 +33,9 @@ public async Task WriteAsync( cancellationToken); const ExtractFileName extractFilename = ExtractFileName.AttWegverharding; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentWidthAttributesToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentWidthAttributesToZipArchiveWriter.cs index 8f51f7bc9..90a8c72e9 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentWidthAttributesToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentWidthAttributesToZipArchiveWriter.cs @@ -5,7 +5,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Be.Vlaanderen.Basisregisters.Shaperon; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentWidthAttributesToZipArchiveWriter : IZipArchiveWriter @@ -34,7 +33,9 @@ public async Task WriteAsync( cancellationToken); const ExtractFileName extractFilename = ExtractFileName.AttWegbreedte; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentsToZipArchiveWriter.cs b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentsToZipArchiveWriter.cs index 25cc1d3e1..466c69779 100644 --- a/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentsToZipArchiveWriter.cs +++ b/src/RoadRegistry.BackOffice.ZipArchiveWriters/ExtractHost/RoadSegmentsToZipArchiveWriter.cs @@ -7,7 +7,6 @@ namespace RoadRegistry.BackOffice.ZipArchiveWriters.ExtractHost; using Extensions; using Extracts; using Extracts.Dbase.RoadSegments; -using FeatureCompare; using Microsoft.IO; public class RoadSegmentsToZipArchiveWriter : IZipArchiveWriter @@ -43,7 +42,9 @@ public async Task WriteAsync( request.Contour, cancellationToken); const ExtractFileName extractFilename = ExtractFileName.Wegsegment; - FeatureType[] featureTypes = [FeatureType.Extract, FeatureType.Change]; + FeatureType[] featureTypes = request.IsInformative + ? [FeatureType.Extract] + : [FeatureType.Extract, FeatureType.Change]; foreach (var featureType in featureTypes) { diff --git a/src/RoadRegistry.BackOffice/Extracts/RoadNetworkExtractAssemblyRequest.cs b/src/RoadRegistry.BackOffice/Extracts/RoadNetworkExtractAssemblyRequest.cs index 8464af75c..e013ca8d5 100644 --- a/src/RoadRegistry.BackOffice/Extracts/RoadNetworkExtractAssemblyRequest.cs +++ b/src/RoadRegistry.BackOffice/Extracts/RoadNetworkExtractAssemblyRequest.cs @@ -5,18 +5,25 @@ namespace RoadRegistry.BackOffice.Extracts; public class RoadNetworkExtractAssemblyRequest { - public RoadNetworkExtractAssemblyRequest(ExternalExtractRequestId requestId, DownloadId downloadId, ExtractDescription extractDescription, IPolygonal contour) + public RoadNetworkExtractAssemblyRequest( + ExternalExtractRequestId requestId, + DownloadId downloadId, + ExtractDescription extractDescription, + IPolygonal contour, + bool isInformative) { ExternalRequestId = requestId; RequestId = ExtractRequestId.FromExternalRequestId(requestId); DownloadId = downloadId; ExtractDescription = extractDescription; Contour = contour ?? throw new ArgumentNullException(nameof(contour)); + IsInformative = isInformative; } - public IPolygonal Contour { get; } - public DownloadId DownloadId { get; } public ExternalExtractRequestId ExternalRequestId { get; } - public ExtractDescription ExtractDescription { get; } public ExtractRequestId RequestId { get; } -} \ No newline at end of file + public DownloadId DownloadId { get; } + public ExtractDescription ExtractDescription { get; } + public IPolygonal Contour { get; } + public bool IsInformative { get; } +} diff --git a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/IntegrationToZipArchiveWriterFixture.cs b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/IntegrationToZipArchiveWriterFixture.cs index 93312418c..53ab9a952 100644 --- a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/IntegrationToZipArchiveWriterFixture.cs +++ b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/IntegrationToZipArchiveWriterFixture.cs @@ -30,7 +30,8 @@ public IntegrationToZipArchiveWriterFixture(WKTReader wktReader, RecyclableMemor new ExternalExtractRequestId("TEST"), new DownloadId(), new ExtractDescription("TEST"), - (IPolygonal)Result.Single()); + (IPolygonal)Result.Single(), + isInformative: false); public Task DisposeAsync() { @@ -52,4 +53,4 @@ public async Task InitializeAsync() File.WriteAllBytes(Path.ChangeExtension(FileInfo.FullName, ".zip"), fileBytes); } } -} \ No newline at end of file +} diff --git a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNetworkExtractToZipArchiveWriterFixture.cs b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNetworkExtractToZipArchiveWriterFixture.cs index b280d5b5e..c075cbbf8 100644 --- a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNetworkExtractToZipArchiveWriterFixture.cs +++ b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNetworkExtractToZipArchiveWriterFixture.cs @@ -44,7 +44,8 @@ public RoadNetworkExtractToZipArchiveWriterFixture( new ExternalExtractRequestId("TEST"), new DownloadId(), new ExtractDescription("TEST"), - (IPolygonal)Result.Single()); + (IPolygonal)Result.Single(), + isInformative: false); public Task DisposeAsync() { diff --git a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNodesToZipArchiveWriterFixture.cs b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNodesToZipArchiveWriterFixture.cs index 4aceee6cf..ed1910746 100644 --- a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNodesToZipArchiveWriterFixture.cs +++ b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/Fixtures/RoadNodesToZipArchiveWriterFixture.cs @@ -29,7 +29,8 @@ public RoadNodesToZipArchiveWriterFixture(WKTReader wktReader, RecyclableMemoryS new ExternalExtractRequestId("TEST"), new DownloadId(), new ExtractDescription("TEST"), - (IPolygonal)Result.Single()); + (IPolygonal)Result.Single(), + isInformative: false); public Task DisposeAsync() { @@ -51,4 +52,4 @@ public async Task InitializeAsync() File.WriteAllBytes(Path.ChangeExtension(FileInfo.FullName, ".zip"), fileBytes); } } -} \ No newline at end of file +} diff --git a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/TransactionZoneToZipArchiveWriterTests.cs b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/TransactionZoneToZipArchiveWriterTests.cs index 00a295e82..8452ffa88 100644 --- a/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/TransactionZoneToZipArchiveWriterTests.cs +++ b/test/RoadRegistry.BackOffice.ExtractHost.Tests/ZipArchiveWriters/TransactionZoneToZipArchiveWriterTests.cs @@ -49,7 +49,8 @@ private RoadNetworkExtractAssemblyRequest CreateRoadNetworkExtractAssemblyReques externalRequestId, fixture.DownloadId, extractDescription, - fixture.Contour); + fixture.Contour, + isInformative: false); } private static void CustomizeRoadNetworkExtractAssemblyRequestFixture(IFixture fixture) @@ -67,7 +68,8 @@ private static void CustomizeRoadNetworkExtractAssemblyRequestFixture(IFixture f fixture.Create(), fixture.Create(), fixture.Create(), - GeometryTranslator.Translate(geometry)))); + GeometryTranslator.Translate(geometry), + isInformative: false))); } private static IEnumerable<(RecordNumber, TDbaseRecord)> ReadFromArchive(ZipArchive archive, string fileName) where TDbaseRecord : DbaseRecord, new() @@ -178,7 +180,7 @@ public Task GeometryOrdinatesShouldBeOnlyXAndY() new CoordinateZM(0, 1), new CoordinateZM(0, 0) })); - request = new RoadNetworkExtractAssemblyRequest(request.ExternalRequestId, request.DownloadId, request.ExtractDescription, contour); + request = new RoadNetworkExtractAssemblyRequest(request.ExternalRequestId, request.DownloadId, request.ExtractDescription, contour, isInformative: false); Assert.IsType(contour.Coordinate); diff --git a/test/RoadRegistry.BackOffice.ZipArchiveWriters.Tests/BackOffice/RoadNetworkExtractToZipArchiveWriterTests.cs b/test/RoadRegistry.BackOffice.ZipArchiveWriters.Tests/BackOffice/RoadNetworkExtractToZipArchiveWriterTests.cs index 540d6a2d2..8b2ad7f37 100644 --- a/test/RoadRegistry.BackOffice.ZipArchiveWriters.Tests/BackOffice/RoadNetworkExtractToZipArchiveWriterTests.cs +++ b/test/RoadRegistry.BackOffice.ZipArchiveWriters.Tests/BackOffice/RoadNetworkExtractToZipArchiveWriterTests.cs @@ -63,7 +63,7 @@ public RoadNetworkExtractToZipArchiveWriterTests( } [Fact] - public async Task Test() + public async Task InformativeExtractRequest_ThenOnlyContainsExtractAndIntegrationFiles() { var fixture = new RoadNetworkTestData().ObjectProvider; fixture.CustomizeNtsPolygon(); @@ -78,7 +78,91 @@ public async Task Test() var stream = _memoryStreamManager.GetStream(); using var archive = new ZipArchive(stream, ZipArchiveMode.Update, true, Encoding.UTF8); - var request = fixture.Create(); + var request = new RoadNetworkExtractAssemblyRequest( + fixture.Create(), + fixture.Create(), + fixture.Create(), + fixture.Create(), + isInformative: true); + await zipArchiveWriter.WriteAsync(archive, request, _zipArchiveDataProvider.Object, CancellationToken.None); + + var fileNames = archive.Entries.Select(x => x.FullName).ToList(); + + var expectedFileNames = new[] { + "Transactiezones.dbf", + "Transactiezones.shp", + "Transactiezones.shx", + "Transactiezones.cpg", + "Transactiezones.prj", + "eLstOrg.dbf", + "eWegknoop.dbf", + "eWegknoop.shp", + "eWegknoop.shx", + "eWegknoop.cpg", + "eWegknoop.prj", + "eWegsegment.dbf", + "eWegsegment.shp", + "eWegsegment.shx", + "eWegsegment.cpg", + "eWegsegment.prj", + "eAttRijstroken.dbf", + "eAttWegbreedte.dbf", + "eAttWegverharding.dbf", + "eAttNationweg.dbf", + "eAttEuropweg.dbf", + "eAttGenumweg.dbf", + "eRltOgkruising.dbf", + "iWegsegment.dbf", + "iWegsegment.shp", + "iWegsegment.shx", + "iWegsegment.cpg", + "iWegsegment.prj", + "iWegknoop.dbf", + "iWegknoop.shp", + "iWegknoop.shx", + "iWegknoop.cpg", + "iWegknoop.prj", + "eWegknoopLktType.dbf", + "eWegverhardLktType.dbf", + "eGenumwegLktRichting.dbf", + "eWegsegmentLktWegcat.dbf", + "eWegsegmentLktTgbep.dbf", + "eWegsegmentLktMethode.dbf", + "eWegsegmentLktMorf.dbf", + "eWegsegmentLktStatus.dbf", + "eOgkruisingLktType.dbf", + "eRijstrokenLktRichting.dbf" + }; + + fileNames.Should().HaveCount(expectedFileNames.Length); + foreach (var fileName in expectedFileNames) + { + fileNames.Should().Contain(fileName); + } + } + + [Fact] + public async Task NotInformativeExtractRequest_ThenAlsoContainsChangeFiles() + { + var fixture = new RoadNetworkTestData().ObjectProvider; + fixture.CustomizeNtsPolygon(); + + var zipArchiveWriter = new RoadNetworkExtractToZipArchiveWriter( + _zipArchiveWriterOptions, + _streetNameCache, + _memoryStreamManager, + Encoding.UTF8, + NullLogger.Instance); + + var stream = _memoryStreamManager.GetStream(); + + using var archive = new ZipArchive(stream, ZipArchiveMode.Update, true, Encoding.UTF8); + var request = new RoadNetworkExtractAssemblyRequest( + fixture.Create(), + fixture.Create(), + fixture.Create(), + fixture.Create(), + isInformative: false); await zipArchiveWriter.WriteAsync(archive, request, _zipArchiveDataProvider.Object, CancellationToken.None); var fileNames = archive.Entries.Select(x => x.FullName).ToList();