Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.IntegrationTests/Deltares.Dam.IntegrationTests.csproj =================================================================== diff -u -r6750 -r6766 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.IntegrationTests/Deltares.Dam.IntegrationTests.csproj (.../Deltares.Dam.IntegrationTests.csproj) (revision 6750) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.IntegrationTests/Deltares.Dam.IntegrationTests.csproj (.../Deltares.Dam.IntegrationTests.csproj) (revision 6766) @@ -17,6 +17,7 @@ + @@ -28,6 +29,477 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.IntegrationTests/ImportTests.cs =================================================================== diff -u --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.IntegrationTests/ImportTests.cs (revision 0) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.IntegrationTests/ImportTests.cs (revision 6766) @@ -0,0 +1,107 @@ +// Copyright (C) Stichting Deltares 2025. All rights reserved. +// +// This file is part of the application DAM - UI. +// +// DAM - UI is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.IO; +using System.Linq; +using Deltares.Dam.Data; +using Deltares.Dam.Data.DataPlugins.Configuration; +using Deltares.Dam.Data.UISupport; +using Deltares.Dam.Forms; +using Deltares.Standard; +using Deltares.Standard.EventPublisher; +using Deltares.Standard.Language; +using Deltares.Standard.Logging; +using NUnit.Framework; + +namespace Deltares.Dam.IntegrationTests; + +[TestFixture] +public class ImportTests +{ + [Test] + public void GivenConfigurationFileWhenCreatingNewProjectThenCorrectDataIsImported() + { + const string damDataSourceFileName = @"TestData\StabilityOutside1DProfileTest\Actualisatie.defx"; + const string damProjectFileName = @"TestData\StabilityOutside1DProfileTest\ActualisatieImported.damx"; + var damProject = new DamProject(); + damProject.ClearProject(); + var damNewProjectData = new DAMNewProjectData + { + DamProjectType = DamProjectType.Design, + DamDataSourceFileName = damDataSourceFileName, + DamProjectFileName = damProjectFileName, + SelectedDikeRingIds = ["970750"], + DataSourceProjectionName = "+ellps=WGS84 +no_defs" + }; + damProject.ProjectFileName = damNewProjectData.DamProjectFileName; + damProject.DamProjectData.DataSourceEsriProjection = damNewProjectData.DataSourceEsriProjection; + + ImportDamProjectData(damNewProjectData, damProject); + // Write all log messages to a file + File.WriteAllLines(Path.ChangeExtension(damDataSourceFileName, ".log"), + LogManager.Messages.Select(m => m.ToString())); + Assert.That(LogManager.Messages.Count, Is.EqualTo(25)); + } + + /// + /// This code has partly been copied from DamPlugin.Import(). + /// It is better to extract the code there and make it public, so it can be used in the tests. + /// + /// + /// + private static void ImportDamProjectData(DAMNewProjectData damNewProjectData, DamProject damProject) + { + LogManager.Clear(); + DamProjectType projectType = damNewProjectData.DamProjectType; + string fileName = damNewProjectData.DamDataSourceFileName; + + DataSourceContainer dataSourceContainer = DataSourceContainer.Deserialize(fileName); + string damProjectFolder = Path.GetDirectoryName(fileName); + + dataSourceContainer.DataSourceEsriProjection ??= damNewProjectData.DataSourceEsriProjection; + + DataEventPublisher.ThreadPublisher = new ThreadPublisher(); + // ATTENTION: Do not stop DataEventPublisher because it is used to determine the source of the data with DataSourceManager + DataSourceManager.StartListening(); + + damProject.Import(damProjectFolder, dataSourceContainer, damNewProjectData.SelectedDikeRingIds, + damNewProjectData.DamProjectType, null); + // Importing data creates a new DamProjectData object so the values set in the dialog have to be reset. + damProject.DamProjectData.DamProjectType = projectType; + damProject.DamProjectData.DamDataSourceFileName = fileName; + + if (dataSourceContainer.MapSoilProfile2D != null) + { + // Make sure the 2D-geometrie map is assigned + damProject.AssignGeometry2DMapnameIfNotAssigned(Path.Combine(damProjectFolder, dataSourceContainer.MapSoilProfile2D)); + } + + // If profiles are defined as relative profiles, new absolute profiles will be generated for each location + if (dataSourceContainer.IsImportAsRelativeProfiles) + { + WaterBoardPostProcessRelativeProfiles.CreateAbsoluteProfiles(damProject.DamProjectData.WaterBoard, dataSourceContainer.SoilProfileCharacteristicPointReference); + } + + damProject.DamProjectData.DataSources = DataSourceManager.DataSources; + + damProject.SaveXMLProject(damProject.ProjectFileName, damProject); + } +} \ No newline at end of file