Index: Ringtoets/Common/src/Ringtoets.Common.Data/Hydraulics/HydraulicBoundaryDatabaseExtensions.cs =================================================================== diff -u -r381345fcad26d313d3cfd5ccd3d1e131c1d5c379 -r0c7f559da0144b5ecf707274a21db465e0ee9b36 --- Ringtoets/Common/src/Ringtoets.Common.Data/Hydraulics/HydraulicBoundaryDatabaseExtensions.cs (.../HydraulicBoundaryDatabaseExtensions.cs) (revision 381345fcad26d313d3cfd5ccd3d1e131c1d5c379) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Hydraulics/HydraulicBoundaryDatabaseExtensions.cs (.../HydraulicBoundaryDatabaseExtensions.cs) (revision 0c7f559da0144b5ecf707274a21db465e0ee9b36) @@ -29,6 +29,25 @@ public static class HydraulicBoundaryDatabaseExtensions { /// + /// Checks whether the hydraulic boundary database is coupled to a database file. + /// + /// The hydraulic boundary database to check + /// for being coupled. + /// true if the hydraulic boundary database is coupled; + /// false otherwise. + /// Thrown when + /// is null. + public static bool IsCoupled(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase) + { + if (hydraulicBoundaryDatabase == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); + } + + return !string.IsNullOrEmpty(hydraulicBoundaryDatabase.FilePath); + } + + /// /// Gets the preprocessor directory to be used during Hydra-Ring calculations. /// /// The hydraulic boundary database to get the Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Hydraulics/HydraulicBoundaryDatabaseExtensionsTest.cs =================================================================== diff -u -rfe55aedc4ccec24ea5827ecf23a965d2a2cb1ed8 -r0c7f559da0144b5ecf707274a21db465e0ee9b36 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Hydraulics/HydraulicBoundaryDatabaseExtensionsTest.cs (.../HydraulicBoundaryDatabaseExtensionsTest.cs) (revision fe55aedc4ccec24ea5827ecf23a965d2a2cb1ed8) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Hydraulics/HydraulicBoundaryDatabaseExtensionsTest.cs (.../HydraulicBoundaryDatabaseExtensionsTest.cs) (revision 0c7f559da0144b5ecf707274a21db465e0ee9b36) @@ -29,6 +29,17 @@ public class HydraulicBoundaryDatabaseExtensionsTest { [Test] + public void IsCoupled_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => HydraulicBoundaryDatabaseExtensions.IsCoupled(null); + + // Assert + string paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("hydraulicBoundaryDatabase", paramName); + } + + [Test] public void EffectivePreprocessorDirectory_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException() { // Call @@ -52,6 +63,24 @@ Assert.AreEqual("", effectivePreprocessorDirectory); } + [TestCase(null, false)] + [TestCase("", false)] + [TestCase("Test", true)] + public void IsCoupled_SpecificFilePath_ReturnsExpectedValue(string filePath, bool expectedValue) + { + // Setup + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + FilePath = filePath + }; + + // Call + bool isCoupled = hydraulicBoundaryDatabase.IsCoupled(); + + // Assert + Assert.AreEqual(expectedValue, isCoupled); + } + [TestCase(false, "Test", "")] [TestCase(true, "Test", "Test")] public void EffectivePreprocessorDirectory_CanUsePreprocessorTrue_ReturnsExpectedValue(bool usePreprocessor,