public void DynamicReadOnlyValidationMethod_DrainageConstructionPresent_DependsOnSoilScenario( [Values(true, false)] bool drainageConstructionPresent, [Values(MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand, MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay, MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand, MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay)] MacroStabilityInwardsDikeSoilScenario soilScenario) { // Setup var mocks = new MockRepository(); var handler = mocks.Stub <IObservablePropertyChangeHandler>(); mocks.ReplayAll(); var input = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties()) { DrainageConstructionPresent = drainageConstructionPresent, DikeSoilScenario = soilScenario }; var properties = new MacroStabilityInwardsDrainageProperties(input, handler); // Call bool result = properties.DynamicReadOnlyValidationMethod(nameof(properties.DrainageConstructionPresent)); // Assert bool isClayDike = input.DikeSoilScenario == MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay || input.DikeSoilScenario == MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand; Assert.AreEqual(isClayDike, result); }
/// <summary> /// Converts a <see cref="MacroStabilityInwardsDikeSoilScenario"/> into a <see cref="DikeSoilScenario"/>. /// </summary> /// <param name="dikeSoilScenario">The <see cref="MacroStabilityInwardsDikeSoilScenario"/> to convert.</param> /// <returns>A <see cref="DikeSoilScenario"/> based on <paramref name="dikeSoilScenario"/>.</returns> /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="dikeSoilScenario"/> /// is an invalid value.</exception> /// <exception cref="NotSupportedException">Thrown when <paramref name="dikeSoilScenario"/> /// is a valid value, but unsupported.</exception> public static DikeSoilScenario ConvertDikeSoilScenario(MacroStabilityInwardsDikeSoilScenario dikeSoilScenario) { if (!Enum.IsDefined(typeof(MacroStabilityInwardsDikeSoilScenario), dikeSoilScenario)) { throw new InvalidEnumArgumentException(nameof(dikeSoilScenario), (int)dikeSoilScenario, typeof(MacroStabilityInwardsDikeSoilScenario)); } switch (dikeSoilScenario) { case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay: return(DikeSoilScenario.ClayDikeOnClay); case MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay: return(DikeSoilScenario.SandDikeOnClay); case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand: return(DikeSoilScenario.ClayDikeOnSand); case MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand: return(DikeSoilScenario.SandDikeOnSand); default: throw new NotSupportedException(); } }
public void ConvertDikeSoilScenario_ValidDikeSoilScenario_ReturnExpectedDikeSoilScenario( MacroStabilityInwardsDikeSoilScenario macroStabilityInwardsDikeSoilScenario, DikeSoilScenario expectedDikeSoilScenario) { // Call DikeSoilScenario convertedDikeSoilScenario = WaternetCreatorInputHelper.ConvertDikeSoilScenario(macroStabilityInwardsDikeSoilScenario); // Assert Assert.AreEqual(expectedDikeSoilScenario, convertedDikeSoilScenario); }
public void ConvertDikeSoilScenario_InvalidDikeSoilScenario_ThrowInvalidEnumArgumentException() { // Setup const MacroStabilityInwardsDikeSoilScenario dikeSoilScenario = (MacroStabilityInwardsDikeSoilScenario)99; // Call void Call() => WaternetCreatorInputHelper.ConvertDikeSoilScenario(dikeSoilScenario); // Assert string message = $"The value of argument 'dikeSoilScenario' ({dikeSoilScenario}) is invalid for Enum type '{nameof(MacroStabilityInwardsDikeSoilScenario)}'."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(Call, message); }
public void ConvertFrom_InvalidMacroStabilityInwardsDikeSoilScenario_ThrowsInvalidEnumArgumentException() { // Setup const MacroStabilityInwardsDikeSoilScenario invalidValue = (MacroStabilityInwardsDikeSoilScenario)9999; var converter = new ConfigurationDikeSoilScenarioTypeConverter(); // Call TestDelegate call = () => converter.ConvertFrom(invalidValue); // Assert string expectedMessage = $"The value of argument 'value' ({invalidValue}) is invalid for Enum type '{nameof(MacroStabilityInwardsDikeSoilScenario)}'."; string parameterName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(call, expectedMessage).ParamName; Assert.AreEqual("value", parameterName); }
public void DynamicReadOnlyValidationMethod_GivenDikeSoilScenario_ReturnsExpectedReadOnly( MacroStabilityInwardsDikeSoilScenario dikeSoilScenario, bool expectedReadOnly) { // Setup var calculation = new MacroStabilityInwardsCalculationScenario { InputParameters = { DikeSoilScenario = dikeSoilScenario } }; var handler = new ObservablePropertyChangeHandler(calculation, calculation.InputParameters); var properties = new MacroStabilityInwardsLocationInputExtremeProperties(calculation.InputParameters, handler); // Call & Assert Assert.AreEqual(expectedReadOnly, properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsLocationInputExtremeProperties.PenetrationLength))); }
/// <summary> /// Gets the <see cref="PersistableEmbankmentSoilScenario"/> based on the <paramref name="dikeSoilScenario"/>. /// </summary> /// <param name="dikeSoilScenario">The <see cref="MacroStabilityInwardsDikeSoilScenario"/> /// to get the <see cref="PersistableEmbankmentSoilScenario"/> for.</param> /// <returns>The <see cref="PersistableEmbankmentSoilScenario"/>.</returns> /// <exception cref="NotSupportedException">Thrown when <paramref name="dikeSoilScenario"/> /// has an unsupported value.</exception> public static PersistableEmbankmentSoilScenario GetEmbankmentSoilScenario(MacroStabilityInwardsDikeSoilScenario dikeSoilScenario) { switch (dikeSoilScenario) { case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay: return(PersistableEmbankmentSoilScenario.ClayEmbankmentOnClay); case MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay: return(PersistableEmbankmentSoilScenario.SandEmbankmentOnClay); case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand: return(PersistableEmbankmentSoilScenario.ClayEmbankmentOnSand); case MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand: return(PersistableEmbankmentSoilScenario.SandEmbankmentOnSand); default: throw new NotSupportedException(); } }
public void Create_ValidDikeSoilScenario_ReturnInputWithDikeSoilScenario(MacroStabilityInwardsDikeSoilScenario macroStabilityInwardsDikeSoilScenario, DikeSoilScenario expectedDikeSoilScenario) { // Setup var input = new WaternetCalculatorInput( new WaternetCalculatorInput.ConstructionProperties { DrainageConstruction = new DrainageConstruction(), PhreaticLineOffsets = new PhreaticLineOffsets(), SurfaceLine = new MacroStabilityInwardsSurfaceLine("test"), SoilProfile = new TestSoilProfile(), DikeSoilScenario = macroStabilityInwardsDikeSoilScenario }); // Call WaternetCreatorInput waternetCreatorInput = WaternetCreatorInputCreator.Create(input); // Assert Assert.AreEqual(expectedDikeSoilScenario, waternetCreatorInput.DikeSoilScenario); }
public void Convert_ClayDikeAndDrainageConstructionPresentTrue_ReturnDrainageConstruction(MacroStabilityInwardsDikeSoilScenario soilScenario) { // Setup var random = new Random(21); var input = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties()) { DrainageConstructionPresent = true, XCoordinateDrainageConstruction = random.NextRoundedDouble(), ZCoordinateDrainageConstruction = random.NextRoundedDouble(), DikeSoilScenario = soilScenario }; // Call DrainageConstruction drainageConstruction = DrainageConstructionConverter.Convert(input); // Assert Assert.IsFalse(drainageConstruction.IsPresent); Assert.IsNaN(drainageConstruction.XCoordinate); Assert.IsNaN(drainageConstruction.ZCoordinate); }
public void DynamicReadOnlyValidationMethod_OtherDikeSoilScenario_ReturnsExpectedReadOnly(MacroStabilityInwardsDikeSoilScenario dikeSoilScenario) { // Setup var mocks = new MockRepository(); var propertyChangeHandler = mocks.Stub <IObservablePropertyChangeHandler>(); mocks.ReplayAll(); var input = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties()) { DikeSoilScenario = dikeSoilScenario }; var properties = new MacroStabilityInwardsWaterStressesProperties(input, new GeneralMacroStabilityInwardsInput(), AssessmentSectionTestHelper.GetTestAssessmentLevel(), propertyChangeHandler); // Call & Assert Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.AdjustPhreaticLine3And4ForUplift))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.LeakageLengthInwardsPhreaticLine3))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.LeakageLengthOutwardsPhreaticLine3))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.LeakageLengthInwardsPhreaticLine4))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.LeakageLengthOutwardsPhreaticLine4))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.PiezometricHeadPhreaticLine2Inwards))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.PiezometricHeadPhreaticLine2Outwards))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.WaterLevelRiverAverage))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.MinimumLevelPhreaticLineAtDikeTopPolder))); Assert.IsFalse(properties.DynamicReadOnlyValidationMethod(nameof(MacroStabilityInwardsWaterStressesProperties.MinimumLevelPhreaticLineAtDikeTopRiver))); }
/// <summary> /// Creates the <see cref="PersistableEmbankmentSoilScenario"/>. /// </summary> /// <param name="dikeSoilScenario">The <see cref="MacroStabilityInwardsDikeSoilScenario"/> /// to create the <see cref="PersistableEmbankmentSoilScenario"/> for.</param> /// <returns>The created <see cref="PersistableEmbankmentSoilScenario"/>.</returns> /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="dikeSoilScenario"/> /// has an invalid value for <see cref="MacroStabilityInwardsDikeSoilScenario"/>.</exception> /// <exception cref="NotSupportedException">Thrown when <paramref name="dikeSoilScenario"/> /// is not supported.</exception> private static PersistableEmbankmentSoilScenario CreateEmbankmentSoilScenario(MacroStabilityInwardsDikeSoilScenario dikeSoilScenario) { if (!Enum.IsDefined(typeof(MacroStabilityInwardsDikeSoilScenario), dikeSoilScenario)) { throw new InvalidEnumArgumentException(nameof(dikeSoilScenario), (int)dikeSoilScenario, typeof(MacroStabilityInwardsDikeSoilScenario)); } switch (dikeSoilScenario) { case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay: return(PersistableEmbankmentSoilScenario.ClayEmbankmentOnClay); case MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay: return(PersistableEmbankmentSoilScenario.SandEmbankmentOnClay); case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand: return(PersistableEmbankmentSoilScenario.ClayEmbankmentOnSand); case MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand: return(PersistableEmbankmentSoilScenario.SandEmbankmentOnSand); default: throw new NotSupportedException(); } }
public void Create_WithDifferentDikeSoilScenarios_ReturnsPersistableWaternetCreatorSettingsCollection(MacroStabilityInwardsDikeSoilScenario soilScenario) { // Setup MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput( new TestHydraulicBoundaryLocation()); MacroStabilityInwardsInput input = calculation.InputParameters; input.DikeSoilScenario = soilScenario; var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); PersistableGeometryFactory.Create(input.SoilProfileUnderSurfaceLine, idFactory, registry); // Call IEnumerable <PersistableWaternetCreatorSettings> waternetCreatorSettingsCollection = PersistableWaternetCreatorSettingsFactory.Create( input, RoundedDouble.NaN, idFactory, registry); // Assert foreach (PersistableWaternetCreatorSettings waternetCreatorSettings in waternetCreatorSettingsCollection) { Assert.AreEqual(PersistableDataModelTestHelper.GetEmbankmentSoilScenario(input.DikeSoilScenario), waternetCreatorSettings.EmbankmentSoilScenario); } }