public void Constructor_ExpectedValues() { // Setup var random = new Random(21); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism { InAssembly = random.NextBoolean(), GeneralInput = { ApplyLengthEffectInSection = random.NextBoolean() } }; // Call var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Assert Assert.IsInstanceOf <GrassCoverErosionInwardsFailureMechanismPropertiesBase>(properties); Assert.AreEqual(failureMechanism.Name, properties.Name); Assert.AreEqual(failureMechanism.Code, properties.Code); Assert.AreEqual(failureMechanism.InAssembly, properties.InAssembly); GeneralGrassCoverErosionInwardsInput generalInput = failureMechanism.GeneralInput; Assert.AreEqual(2, properties.N.NumberOfDecimalPlaces); Assert.AreEqual(generalInput.N, properties.N, properties.N.GetAccuracy()); Assert.AreEqual(generalInput.ApplyLengthEffectInSection, properties.ApplyLengthEffectInSection); }
public void Constructor_ExpectedValues() { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); // Call var properties = new GrassCoverErosionInwardsFailureMechanismProperties( failureMechanism); // Assert Assert.IsInstanceOf <GrassCoverErosionInwardsFailureMechanismPropertiesBase>(properties); Assert.AreEqual(failureMechanism.Name, properties.Name); Assert.AreEqual(failureMechanism.Code, properties.Code); GeneralGrassCoverErosionInwardsInput generalInput = failureMechanism.GeneralInput; Assert.AreEqual(generalInput.FbFactor.Mean, properties.FbFactor.Mean); Assert.AreEqual(generalInput.FbFactor.StandardDeviation, properties.FbFactor.StandardDeviation); Assert.AreEqual(generalInput.FnFactor.Mean, properties.FnFactor.Mean); Assert.AreEqual(generalInput.FnFactor.StandardDeviation, properties.FnFactor.StandardDeviation); Assert.AreEqual(generalInput.FrunupModelFactor.Mean, properties.FrunupModelFactor.Mean); Assert.AreEqual(generalInput.FrunupModelFactor.StandardDeviation, properties.FrunupModelFactor.StandardDeviation); Assert.AreEqual(generalInput.FshallowModelFactor.Mean, properties.FshallowModelFactor.Mean); Assert.AreEqual(generalInput.FshallowModelFactor.StandardDeviation, properties.FshallowModelFactor.StandardDeviation); }
public void Constructor_InAssemblyTrue_PropertiesHaveExpectedAttributesValues() { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism { InAssembly = true }; // Call var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(5, dynamicProperties.Count); const string generalCategory = "Algemeen"; const string lengthEffectCategory = "Lengte-effect"; PropertyDescriptor nameProperty = dynamicProperties[namePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty, generalCategory, "Naam", "De naam van het faalmechanisme.", true); PropertyDescriptor labelProperty = dynamicProperties[codePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(labelProperty, generalCategory, "Label", "Het label van het faalmechanisme.", true); PropertyDescriptor inAssemblyProperty = dynamicProperties[inAssemblyPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(inAssemblyProperty, generalCategory, "In assemblage", "Geeft aan of dit faalmechanisme wordt meegenomen in de assemblage.", true); PropertyDescriptor nProperty = dynamicProperties[nPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nProperty, lengthEffectCategory, "N [-]", "De parameter 'N' die gebruikt wordt om het lengte-effect mee te nemen in de beoordeling."); PropertyDescriptor applySectionLengthInSectionProperty = dynamicProperties[applyLengthEffectInSectionPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(applySectionLengthInSectionProperty, lengthEffectCategory, "Toepassen lengte-effect binnen vak", "Geeft aan of het lengte-effect binnen een vak toegepast wordt."); }
public void DynamicVisibleValidationMethod_DependingOnInAssembly_ReturnExpectedVisibility(bool inAssembly) { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism { InAssembly = inAssembly }; var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Assert Assert.IsTrue(properties.DynamicVisibleValidationMethod(nameof(properties.Name))); Assert.IsTrue(properties.DynamicVisibleValidationMethod(nameof(properties.Code))); Assert.IsTrue(properties.DynamicVisibleValidationMethod(nameof(properties.InAssembly))); Assert.AreEqual(inAssembly, properties.DynamicVisibleValidationMethod(nameof(properties.N))); Assert.AreEqual(inAssembly, properties.DynamicVisibleValidationMethod(nameof(properties.ApplyLengthEffectInSection))); }
public void Constructor_InAssemblyFalse_PropertiesHaveExpectedAttributesValues() { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism { InAssembly = false }; // Call var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(3, dynamicProperties.Count); const string generalCategory = "Algemeen"; PropertyDescriptor nameProperty = dynamicProperties[namePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty, generalCategory, "Naam", "De naam van het faalmechanisme.", true); PropertyDescriptor labelProperty = dynamicProperties[codePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(labelProperty, generalCategory, "Label", "Het label van het faalmechanisme.", true); PropertyDescriptor inAssemblyProperty = dynamicProperties[inAssemblyPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(inAssemblyProperty, generalCategory, "In assemblage", "Geeft aan of dit faalmechanisme wordt meegenomen in de assemblage.", true); }
public void N_SetValidValue_SetsValueAndUpdatesObserver(double value) { // Setup var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); failureMechanism.Attach(observer); var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Call properties.N = (RoundedDouble)value; // Assert Assert.AreEqual(value, failureMechanism.GeneralInput.N, failureMechanism.GeneralInput.N.GetAccuracy()); mocks.VerifyAll(); }
public void ApplyLengthEffectInSection_SetNewValue_NotifyObservers() { // Setup var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); failureMechanism.Attach(observer); var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Call properties.ApplyLengthEffectInSection = true; // Assert Assert.IsTrue(failureMechanism.GeneralInput.ApplyLengthEffectInSection); mocks.VerifyAll(); }
public void N_SetInvalidValue_ThrowsArgumentOutOfRangeExceptionNoNotifications(double value) { // Setup var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); mocks.ReplayAll(); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); failureMechanism.Attach(observer); var properties = new GrassCoverErosionInwardsFailureMechanismProperties(failureMechanism); // Call void Call() => properties.N = (RoundedDouble)value; // Assert const string expectedMessage = "De waarde voor 'N' moet in het bereik [1,00, 20,00] liggen."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(Call, expectedMessage); mocks.VerifyAll(); }
public void Constructor_Always_PropertiesHaveExpectedAttributeValues() { // Setup var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); // Call var properties = new GrassCoverErosionInwardsFailureMechanismProperties( failureMechanism); // Assert const string generalCategory = "Algemeen"; const string modelSettingsCategory = "Modelinstellingen"; PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(6, dynamicProperties.Count); PropertyDescriptor nameProperty = dynamicProperties[namePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty, generalCategory, "Naam", "De naam van het faalmechanisme.", true); PropertyDescriptor codeProperty = dynamicProperties[codePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(codeProperty, generalCategory, "Label", "Het label van het faalmechanisme.", true); PropertyDescriptor frunupModelFactorProperty = dynamicProperties[frunupModelFactorPropertyIndex]; Assert.IsInstanceOf <ExpandableObjectConverter>(frunupModelFactorProperty.Converter); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(frunupModelFactorProperty, modelSettingsCategory, "Modelfactor Frunup [-]", "De parameter 'Frunup' die gebruikt wordt in de berekening.", true); PropertyDescriptor fbModelProperty = dynamicProperties[fbFactorPropertyIndex]; Assert.IsInstanceOf <ExpandableObjectConverter>(fbModelProperty.Converter); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(fbModelProperty, modelSettingsCategory, "Modelfactor Fb [-]", "De parameter 'Fb' die gebruikt wordt in de berekening.", true); PropertyDescriptor fnFactorProperty = dynamicProperties[fnFactorPropertyIndex]; Assert.IsInstanceOf <ExpandableObjectConverter>(fnFactorProperty.Converter); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(fnFactorProperty, modelSettingsCategory, "Modelfactor Fn [-]", "De parameter 'Fn' die gebruikt wordt in de berekening.", true); PropertyDescriptor fshallowProperty = dynamicProperties[fshallowModelFactorPropertyIndex]; Assert.IsInstanceOf <ExpandableObjectConverter>(fshallowProperty.Converter); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(fshallowProperty, modelSettingsCategory, "Modelfactor Fondiep [-]", "De parameter 'Fondiep' die gebruikt wordt in de berekening.", true); }