Index: DamClients/DamUI/trunk/src/Dam/Tests/StiImporter/SoilProfile2DImporterTest.cs =================================================================== diff -u -r3071 -r3096 --- DamClients/DamUI/trunk/src/Dam/Tests/StiImporter/SoilProfile2DImporterTest.cs (.../SoilProfile2DImporterTest.cs) (revision 3071) +++ DamClients/DamUI/trunk/src/Dam/Tests/StiImporter/SoilProfile2DImporterTest.cs (.../SoilProfile2DImporterTest.cs) (revision 3096) @@ -78,10 +78,54 @@ public void Import_WithValidArguments_ReturnsExpectedSoilProfiles() { // Setup - const string profileOneFileName = "SimpleProfile.sti"; - const string profileTwoFileName = "Tutorial-1a 10.1.4.3.sti"; + const string profileOneName = "SimpleProfile"; + const string profileTwoName = "Tutorial-1a 10.1.4.3"; Segment segment = CreateSegmentWithProfiles(new[] { + $"{profileOneName}.sti", + $"{profileTwoName}.sti" + }); + SoilList availableSoils = CreateSoilList(new[] + { + "Soft Clay", + "Sand", + "Peat", + "Muck" + }); + + // Call + IEnumerable soilProfiles = SoilProfile2DImporter.Import(TestDataFolder, segment, availableSoils); + + // Assert + Assert.That(soilProfiles, Has.Count.EqualTo(2)); + + SoilProfile2D soilProfileOne = soilProfiles.ElementAt(0); + Assert.That(soilProfileOne.Name, Is.EqualTo(profileOneName)); + CollectionAssert.AreEqual(new[] + { + "Soft Clay", + "Muck" + }, soilProfileOne.Surfaces.Select(s => s.Name)); + + SoilProfile2D soilProfileTwo = soilProfiles.ElementAt(1); + Assert.That(soilProfileTwo.Name, Is.EqualTo(profileTwoName)); + CollectionAssert.AreEquivalent(new[] + { + "Soft Clay", + "Sand", + "Peat", + "Soft Clay" + }, soilProfileTwo.Surfaces.Select(s => s.Name)); // Check only whether all the surfaces are present as the order differs on different machines. + } + + [Test] + public void Import_WithProfileNamesNotHavingStiExtension_ReturnsExpectedSoilProfiles() + { + // Setup + const string profileOneFileName = "SimpleProfile"; + const string profileTwoFileName = "Tutorial-1a 10.1.4.3"; + Segment segment = CreateSegmentWithProfiles(new[] + { profileOneFileName, profileTwoFileName }); @@ -92,7 +136,7 @@ "Peat", "Muck" }); - + // Call IEnumerable soilProfiles = SoilProfile2DImporter.Import(TestDataFolder, segment, availableSoils); Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StiImporter/StiFileReader.cs =================================================================== diff -u -r3059 -r3096 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StiImporter/StiFileReader.cs (.../StiFileReader.cs) (revision 3059) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StiImporter/StiFileReader.cs (.../StiFileReader.cs) (revision 3096) @@ -62,7 +62,7 @@ { var soilProfileImporter = new SoilProfile2DFromDSerieFileImporter(); SoilProfile2D soilProfile = soilProfileImporter.ConvertToSoilProfile2D(filePath); - soilProfile.Name = Path.GetFileName(filePath); + soilProfile.Name = Path.GetFileNameWithoutExtension(filePath); return soilProfile; } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StiImporter/SoilProfile2DImporter.cs =================================================================== diff -u -r3073 -r3096 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StiImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 3073) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/StiImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 3096) @@ -70,12 +70,13 @@ var importedSoilProfiles = new List(); foreach (SoilGeometryProbability profile in soilProfiles) { - string soilProfileFile = profile.SoilGeometry2DName; - SoilProfile2D readSoilProfile = ReadSoilProfile(soilProfileDirectory, soilProfileFile); + string profileName = profile.SoilGeometry2DName; + string soilProfileFileName = HasStiFileExtension(profileName) ? profileName : $"{profileName}.sti"; + SoilProfile2D readSoilProfile = ReadSoilProfile(soilProfileDirectory, soilProfileFileName); if (!IsValidSoilProfile(availableSoils, readSoilProfile)) { string messageFormat = LocalizationManager.GetTranslatedText(typeof(SoilProfile2DImporter), "ImportSoilProfileErrorUndefinedMaterials"); - throw new SoilProfileImporterException(string.Format(messageFormat, soilProfileFile)); + throw new SoilProfileImporterException(string.Format(messageFormat, soilProfileFileName)); } importedSoilProfiles.Add(readSoilProfile); @@ -109,6 +110,11 @@ } } + private static bool HasStiFileExtension(string profileName) + { + return string.Equals(Path.GetExtension(profileName), ".sti", StringComparison.OrdinalIgnoreCase); + } + private static bool IsValidSoilProfile(SoilList availableSoils, SoilProfile2D profile) { var soilNames = new HashSet(availableSoils.Soils.Select(s => s.Name)); Index: DamClients/DamUI/trunk/src/Dam/Tests/StiImporter/StiFileReaderTest.cs =================================================================== diff -u -r3059 -r3096 --- DamClients/DamUI/trunk/src/Dam/Tests/StiImporter/StiFileReaderTest.cs (.../StiFileReaderTest.cs) (revision 3059) +++ DamClients/DamUI/trunk/src/Dam/Tests/StiImporter/StiFileReaderTest.cs (.../StiFileReaderTest.cs) (revision 3096) @@ -93,8 +93,8 @@ public void ReadSoilProfile_WithValidFile_ReturnsExpectedSoilProfile() { // Setup - const string soilProfileFileName = "SimpleProfile.sti"; - string filePath = Path.Combine(TestDataFolder, soilProfileFileName); + const string soilProfileName = "SimpleProfile"; + string filePath = Path.Combine(TestDataFolder, $"{soilProfileName}.sti"); var reader = new StiFileReader(); @@ -103,7 +103,7 @@ // Assert Assert.That(soilProfile, Is.Not.Null); - Assert.That(soilProfile.Name, Is.EqualTo(soilProfileFileName)); + Assert.That(soilProfile.Name, Is.EqualTo(soilProfileName)); Assert.That(soilProfile.Surfaces.Count, Is.EqualTo(2)); var topLeftPoint = new GeometryPoint(0, 0, -4);