Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/PreconsolidationStressReader.cs =================================================================== diff -u -rf23ce41a1dd004c56ab38179b6b28cd389edba36 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898 --- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/PreconsolidationStressReader.cs (.../PreconsolidationStressReader.cs) (revision f23ce41a1dd004c56ab38179b6b28cd389edba36) +++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/PreconsolidationStressReader.cs (.../PreconsolidationStressReader.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898) @@ -72,18 +72,18 @@ /// /// Reads the preconsolidation stresses defined for the soil profile. /// + /// The soil profile ID to read the preconsolidation stresses for. /// A collection of preconsolidation stresses defined for the profile. /// Thrown when the preconsolidation stress /// could not be read. - public IEnumerable ReadPreconsolidationStresses() + public IEnumerable ReadPreconsolidationStresses(long soilProfileId) { if (!HasNext) { return Enumerable.Empty(); } var stresses = new List(); - long soilProfileId = ReadSoilProfileId(); while (HasNext && ReadSoilProfileId() == soilProfileId) { stresses.Add(ReadPreconsolidationStress()); Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs =================================================================== diff -u -rc22b5c73c2ff2c70407477e6fcf7558309513cb6 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898 --- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision c22b5c73c2ff2c70407477e6fcf7558309513cb6) +++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898) @@ -190,7 +190,7 @@ throw; } - PreconsolidationStress[] preconsolidationStresses = preconsolidationStressReader.ReadPreconsolidationStresses() + PreconsolidationStress[] preconsolidationStresses = preconsolidationStressReader.ReadPreconsolidationStresses(criticalProperties.ProfileId) .ToArray(); try { Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/PreconsolidationStressReaderTest.cs =================================================================== diff -u -rc22b5c73c2ff2c70407477e6fcf7558309513cb6 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/PreconsolidationStressReaderTest.cs (.../PreconsolidationStressReaderTest.cs) (revision c22b5c73c2ff2c70407477e6fcf7558309513cb6) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/PreconsolidationStressReaderTest.cs (.../PreconsolidationStressReaderTest.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Core.Common.Base.IO; @@ -201,7 +202,7 @@ reader.Initialize(); // Call - PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses().ToArray(); + PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses(1).ToArray(); // Assert Assert.AreEqual(4, preconsolidationStresses.Length); @@ -265,7 +266,7 @@ reader.Initialize(); // Call - PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses().ToArray(); + PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses(1).ToArray(); // Assert Assert.AreEqual(1, preconsolidationStresses.Length); @@ -281,5 +282,25 @@ Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile)); } + + [Test] + public void ReadPreconsolidationStresses_UnknownSoilProfileId_ReturnsEmptyPreconsolidationStress() + { + // Setup + string dbFile = Path.Combine(testDataPath, "2dprofileWithPreconsolidationStressesNullValues.soil"); + + using (var reader = new PreconsolidationStressReader(dbFile)) + { + reader.Initialize(); + + // Call + IEnumerable preconsolidationStresses = reader.ReadPreconsolidationStresses(2); + + // Assert + CollectionAssert.IsEmpty(preconsolidationStresses); + } + + Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile)); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs =================================================================== diff -u -rc22b5c73c2ff2c70407477e6fcf7558309513cb6 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision c22b5c73c2ff2c70407477e6fcf7558309513cb6) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898) @@ -701,5 +701,37 @@ Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile)); } + + [Test] + public void ReadSoilProfile_SoilProfilesWithAndWithoutPreconsolidationStresses_ReturnsProfilesWithExpectedNrOfPreconsolidationStresses() + { + // Setup + string dbFile = Path.Combine(testDataPath, "2dProfilesWithAndWithoutPreconsolidationStresses.soil"); + + var readProfiles = new List(); + using (var reader = new SoilProfile2DReader(dbFile)) + { + reader.Initialize(); + + while (reader.HasNext) + { + // Call + readProfiles.Add(reader.ReadSoilProfile()); + } + + // Assert + Assert.IsFalse(reader.HasNext); + Assert.AreEqual(3, readProfiles.Count); + } + + CollectionAssert.AreEqual(new[] + { + 1, + 0, + 1 + }, readProfiles.Select(profile => profile.PreconsolidationStresses.Count())); + + Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile)); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/SoilProfile2DReader/2dProfilesWithAndWithoutPreconsolidationStresses.soil =================================================================== diff -u Binary files differ