コード例 #1
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks   = new MockRepository();
            var handler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var calculationScenario = new StructuresCalculationScenario <ClosingStructuresInput>();

            // Call
            var row = new ClosingStructuresCalculationRow(calculationScenario, handler);

            // Assert
            Assert.IsInstanceOf <CalculationRow <StructuresCalculationScenario <ClosingStructuresInput> > >(row);
            Assert.IsInstanceOf <IHasColumnStateDefinitions>(row);

            Assert.AreSame(calculationScenario, row.Calculation);

            IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions;

            Assert.AreEqual(5, columnStateDefinitions.Count);

            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, useBreakWaterColumnIndex);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, breakWaterTypeColumnIndex);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, breakWaterHeightColumnIndex);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, useForeshoreColumnIndex);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, meanInsideWaterLevelColumnIndex);
            mocks.VerifyAll();
        }
コード例 #2
0
        public void ForeshoreProfile_OnChangeToNull_CorrectColumnStates()
        {
            // Setup
            var calculation = new StructuresCalculationScenario <ClosingStructuresInput>
            {
                InputParameters =
                {
                    ForeshoreProfile = new TestForeshoreProfile()
                }
            };

            // Call
            var row = new ClosingStructuresCalculationRow(calculation, new ObservablePropertyChangeHandler(calculation, new ClosingStructuresInput()))
            {
                ForeshoreProfile = new DataGridViewComboBoxItemWrapper <ForeshoreProfile>(null)
            };

            // Assert
            IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions;

            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[useBreakWaterColumnIndex], false);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterTypeColumnIndex], false);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterHeightColumnIndex], false);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[useForeshoreColumnIndex], false);
        }
コード例 #3
0
        public void Constructor_ForeshoreProfileWithGeometry_CorrectColumnStates(bool useBreakWater)
        {
            // Setup
            var calculation = new StructuresCalculationScenario <ClosingStructuresInput>
            {
                InputParameters =
                {
                    ForeshoreProfile = new TestForeshoreProfile(new[]
                    {
                        new Point2D(0.0, 0.0)
                    }),
                    UseBreakWater    = useBreakWater
                }
            };

            // Call
            var row = new ClosingStructuresCalculationRow(calculation, new ObservablePropertyChangeHandler(calculation, new ClosingStructuresInput()));

            // Assert
            IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions;

            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[useBreakWaterColumnIndex], true);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterTypeColumnIndex], useBreakWater);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterHeightColumnIndex], useBreakWater);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[useForeshoreColumnIndex], true);
        }
コード例 #4
0
        private static void AssertPropertyChangeWithOrWithoutCalculationOutput(
            Action <ClosingStructuresCalculationRow> setProperty,
            Action <StructuresCalculationScenario <ClosingStructuresInput> > assertions,
            bool hasOutput,
            bool expectUpdates)
        {
            // Setup
            var mockRepository = new MockRepository();
            var inputObserver  = mockRepository.StrictMock <IObserver>();

            if (expectUpdates)
            {
                inputObserver.Expect(o => o.UpdateObserver());
            }

            var calculationObserver = mockRepository.StrictMock <IObserver>();

            if (expectUpdates && hasOutput)
            {
                calculationObserver.Expect(o => o.UpdateObserver());
            }

            var handler = mockRepository.Stub <IObservablePropertyChangeHandler>();

            mockRepository.ReplayAll();

            StructuresOutput assignedOutput = null;

            StructuresCalculationScenario <ClosingStructuresInput> calculation = ClosingStructuresCalculationScenarioTestFactory.CreateNotCalculatedClosingStructuresCalculationScenario(new FailureMechanismSection("Section 1", new List <Point2D>
            {
                new Point2D(0.0, 0.0)
            }));

            calculation.InputParameters.HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
            if (hasOutput)
            {
                assignedOutput = new TestStructuresOutput();
            }

            calculation.Output = assignedOutput;

            var row = new ClosingStructuresCalculationRow(calculation, handler);

            calculation.Attach(calculationObserver);
            calculation.InputParameters.Attach(inputObserver);

            // Call
            setProperty(row);

            // Assert
            assertions(calculation);
            if (expectUpdates)
            {
                Assert.IsNull(calculation.Output);
            }
            else
            {
                Assert.AreSame(assignedOutput, calculation.Output);
            }
        }
コード例 #5
0
        private static void SetPropertyAndVerifyNotificationsAndOutputForCalculation(
            Action <ClosingStructuresCalculationRow> setProperty,
            StructuresCalculationScenario <ClosingStructuresInput> calculation)
        {
            // Setup
            var mocks      = new MockRepository();
            var observable = mocks.StrictMock <IObservable>();

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

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

            var row = new ClosingStructuresCalculationRow(calculation, handler);

            // Call
            setProperty(row);

            // Assert
            Assert.IsTrue(handler.Called);
            mocks.VerifyAll();
        }
コード例 #6
0
        public void InflowModelType_ChangeToEqualValue_DikeProfileChangedNotFired()
        {
            // Setup
            var inflowModelTypeChangedCounter = 0;
            var random = new Random(21);

            var mocks   = new MockRepository();
            var handler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            var inflowModelType = random.NextEnumValue <ClosingStructureInflowModelType>();
            var row             = new ClosingStructuresCalculationRow(new StructuresCalculationScenario <ClosingStructuresInput>
            {
                InputParameters =
                {
                    InflowModelType = inflowModelType
                }
            }, handler);

            row.InflowModelTypeChanged += (s, a) => inflowModelTypeChangedCounter++;

            // Call
            row.InflowModelType = inflowModelType;

            // Assert
            Assert.AreEqual(0, inflowModelTypeChangedCounter);
            mocks.VerifyAll();
        }
コード例 #7
0
        public void InflowModelType_AlwaysOnChange_DikeProfileChangedFired()
        {
            // Setup
            var inflowModelTypeChangedCounter = 0;
            var random = new Random(645);

            var mocks   = new MockRepository();
            var handler = new SetPropertyValueAfterConfirmationParameterTester(new IObservable[0]);

            mocks.ReplayAll();

            var row = new ClosingStructuresCalculationRow(new StructuresCalculationScenario <ClosingStructuresInput>
            {
                InputParameters =
                {
                    InflowModelType = random.NextEnumValue <ClosingStructureInflowModelType>()
                }
            }, handler);

            row.InflowModelTypeChanged += (s, a) => inflowModelTypeChangedCounter++;

            // Call
            row.InflowModelType = random.NextEnumValue <ClosingStructureInflowModelType>();

            // Assert
            Assert.AreEqual(1, inflowModelTypeChangedCounter);
            mocks.VerifyAll();
        }
コード例 #8
0
        public void InflowModelType_AlwaysOnChange_CorrectColumnStates(ClosingStructureInflowModelType inflowModelType, bool isEnabled)
        {
            // Setup
            var calculation = new StructuresCalculationScenario <ClosingStructuresInput>();

            // Call
            var row = new ClosingStructuresCalculationRow(calculation, new ObservablePropertyChangeHandler(calculation, new ClosingStructuresInput()))
            {
                InflowModelType = inflowModelType
            };

            // Assert
            IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions;

            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[meanInsideWaterLevelColumnIndex], isEnabled);
        }
コード例 #9
0
        public void Constructor_ForeshoreProfileNull_CorrectColumnStates()
        {
            // Setup
            var calculation = new StructuresCalculationScenario <ClosingStructuresInput>();

            // Call
            var row = new ClosingStructuresCalculationRow(calculation, new ObservablePropertyChangeHandler(calculation, new ClosingStructuresInput()));

            // Assert
            IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions;

            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[useBreakWaterColumnIndex], false);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterTypeColumnIndex], false);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterHeightColumnIndex], false);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[useForeshoreColumnIndex], false);
        }
コード例 #10
0
        public void UseBreakWater_AlwaysOnChange_CorrectColumnStates(bool useBreakWater)
        {
            // Setup
            var calculation = new StructuresCalculationScenario <ClosingStructuresInput>
            {
                InputParameters =
                {
                    ForeshoreProfile = new TestForeshoreProfile()
                }
            };

            // Call
            var row = new ClosingStructuresCalculationRow(calculation, new ObservablePropertyChangeHandler(calculation, new ClosingStructuresInput()))
            {
                UseBreakWater = useBreakWater
            };

            // Assert
            IDictionary <int, DataGridViewColumnStateDefinition> columnStateDefinitions = row.ColumnStateDefinitions;

            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterTypeColumnIndex], useBreakWater);
            DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(columnStateDefinitions[breakWaterHeightColumnIndex], useBreakWater);
        }