public void GetProperties_WithData_ReturnExpectedValues()
        {
            // Setup
            var mocks = new MockRepository();
            var targetProbabilityChangeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1)
            {
                HydraulicBoundaryLocationCalculations =
                {
                    new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation())
                }
            };

            // Call
            var properties = new WaveHeightCalculationsForUserDefinedTargetProbabilityProperties(
                calculationsForTargetProbability, targetProbabilityChangeHandler);

            // Assert
            Assert.AreEqual(calculationsForTargetProbability.TargetProbability, properties.TargetProbability);
            Assert.AreEqual(1, properties.Calculations.Length);

            mocks.VerifyAll();
        }
        public void TargetProbability_Always_InputChangedAndObservablesNotified()
        {
            // Setup
            var mocks      = new MockRepository();
            var observable = mocks.StrictMock <IObservable>();

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

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

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1)
            {
                HydraulicBoundaryLocationCalculations =
                {
                    new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation())
                }
            };

            var properties = new WaveHeightCalculationsForUserDefinedTargetProbabilityProperties(
                calculationsForTargetProbability, customHandler);

            // Call
            properties.TargetProbability = 0.01;

            // Assert
            mocks.VerifyAll();
        }
        public void Constructor_Always_PropertiesHaveExpectedAttributesValues()
        {
            // Setup
            var mocks = new MockRepository();
            var targetProbabilityChangeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            // Call
            var properties = new WaveHeightCalculationsForUserDefinedTargetProbabilityProperties(
                new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1), targetProbabilityChangeHandler);

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

            Assert.AreEqual(2, dynamicProperties.Count);

            PropertyDescriptor targetProbabilityProperty = dynamicProperties[targetProbabilityPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(targetProbabilityProperty,
                                                                            "Algemeen",
                                                                            "Doelkans [1/jaar]",
                                                                            "Overschrijdingskans waarvoor de hydraulische belastingen worden berekend.");

            PropertyDescriptor locationsProperty = dynamicProperties[calculationsPropertyIndex];

            PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(locationsProperty,
                                                                            "Algemeen",
                                                                            "Locaties",
                                                                            "Locaties uit de hydraulische belastingendatabase.",
                                                                            true);

            mocks.VerifyAll();
        }
        public void Constructor_ValidParameters_ExpectedValues()
        {
            // Setup
            var mocks = new MockRepository();
            var targetProbabilityChangeHandler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);

            // Call
            var properties = new WaveHeightCalculationsForUserDefinedTargetProbabilityProperties(
                calculationsForTargetProbability, targetProbabilityChangeHandler);

            // Assert
            Assert.IsInstanceOf <WaveHeightCalculationsProperties>(properties);
            Assert.AreSame(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations, properties.Data);
            TestHelper.AssertTypeConverter <WaveHeightCalculationsForUserDefinedTargetProbabilityProperties, ExpandableArrayConverter>(
                nameof(WaveHeightCalculationsForUserDefinedTargetProbabilityProperties.Calculations));
            TestHelper.AssertTypeConverter <WaveHeightCalculationsForUserDefinedTargetProbabilityProperties, NoProbabilityValueDoubleConverter>(
                nameof(WaveHeightCalculationsForUserDefinedTargetProbabilityProperties.TargetProbability));

            mocks.VerifyAll();
        }