Example #1
0
        private static void SetPropertyAndVerifyNotificationsForCalculation(Action <MacroStabilityInwardsDrainageProperties> setProperty,
                                                                            MacroStabilityInwardsCalculation calculation)
        {
            // Setup
            var mocks      = new MockRepository();
            var observable = mocks.StrictMock <IObservable>();

            observable.Expect(o => o.NotifyObservers());
            mocks.ReplayAll();

            MacroStabilityInwardsInput input = calculation.InputParameters;

            var handler = new SetPropertyValueAfterConfirmationParameterTester(new[]
            {
                observable
            });

            var properties = new MacroStabilityInwardsDrainageProperties(input, handler);

            // Call
            setProperty(properties);

            // Assert
            Assert.IsTrue(handler.Called);
            mocks.VerifyAll();
        }
Example #2
0
        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);
        }
Example #3
0
        public void GivenPropertiesWithData_WhenChangingProperties_ThenPropertiesSetOnInput()
        {
            // Given
            var calculation = new MacroStabilityInwardsCalculationScenario();
            MacroStabilityInwardsInput input = calculation.InputParameters;

            var handler    = new ObservablePropertyChangeHandler(calculation, input);
            var properties = new MacroStabilityInwardsDrainageProperties(input, handler);

            var    random = new Random(21);
            bool   constructionPresent             = random.NextBoolean();
            double xCoordinateDrainageConstruction = random.NextDouble();
            double zCoordinateDrainageConstruction = random.NextDouble();

            // When
            properties.DrainageConstructionPresent     = constructionPresent;
            properties.XCoordinateDrainageConstruction = (RoundedDouble)xCoordinateDrainageConstruction;
            properties.ZCoordinateDrainageConstruction = (RoundedDouble)zCoordinateDrainageConstruction;

            // Then
            Assert.AreEqual(constructionPresent, input.DrainageConstructionPresent);
            Assert.AreEqual(xCoordinateDrainageConstruction, input.XCoordinateDrainageConstruction,
                            input.XCoordinateDrainageConstruction.GetAccuracy());
            Assert.AreEqual(zCoordinateDrainageConstruction, input.ZCoordinateDrainageConstruction,
                            input.ZCoordinateDrainageConstruction.GetAccuracy());
        }
Example #4
0
        public void Constructor_ValidData_PropertiesHaveExpectedAttributesValues()
        {
            // Setup
            var mocks         = new MockRepository();
            var changeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var input = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties());

            // Call
            var properties = new MacroStabilityInwardsDrainageProperties(input, changeHandler);

            // Assert
            PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties);

            Assert.AreEqual(3, dynamicProperties.Count);

            const string drainageCategory = "Drainage";

            PropertyDescriptor drainagePresentProperty = dynamicProperties[expectedDrainageConstructionPresentPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(
                drainagePresentProperty,
                drainageCategory,
                "Aanwezig",
                "Is drainage aanwezig?",
                true);

            PropertyDescriptor drainageXProperty = dynamicProperties[expectedXCoordinateDrainageConstructionPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(
                drainageXProperty,
                drainageCategory,
                "X [m]",
                "X-coördinaat van het middelpunt van de drainage (in lokale coördinaten).",
                true);

            PropertyDescriptor drainageZProperty = dynamicProperties[expectedZCoordinateDrainageConstructionPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(
                drainageZProperty,
                drainageCategory,
                "Z [m+NAP]",
                "Z-coördinaat (hoogte) van het middelpunt van de drainage.",
                true);

            mocks.VerifyAll();
        }
Example #5
0
        public void ToString_Always_ReturnEmptyString()
        {
            // Setup
            var mocks         = new MockRepository();
            var changeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var input      = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties());
            var properties = new MacroStabilityInwardsDrainageProperties(input, changeHandler);

            // Call
            string toString = properties.ToString();

            // Assert
            Assert.AreEqual(string.Empty, toString);
        }
Example #6
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks         = new MockRepository();
            var changeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var input = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties());

            // Call
            var properties = new MacroStabilityInwardsDrainageProperties(input, changeHandler);

            // Assert
            Assert.IsInstanceOf <ObjectProperties <MacroStabilityInwardsInput> >(properties);
            Assert.AreSame(input, properties.Data);
            mocks.VerifyAll();
        }
Example #7
0
        public void GetProperties_WithData_ReturnExpectedValues()
        {
            // Setup
            var mocks         = new MockRepository();
            var changeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var input = new MacroStabilityInwardsInput(new MacroStabilityInwardsInput.ConstructionProperties());

            // Call
            var properties = new MacroStabilityInwardsDrainageProperties(input, changeHandler);

            // Assert
            Assert.AreEqual(input.DrainageConstructionPresent, properties.DrainageConstructionPresent);
            Assert.AreEqual(input.XCoordinateDrainageConstruction, properties.XCoordinateDrainageConstruction);
            Assert.AreEqual(input.ZCoordinateDrainageConstruction, properties.ZCoordinateDrainageConstruction);
            mocks.VerifyAll();
        }