示例#1
0
        private static void SetPropertyAndVerifyNotificationsAndOutputForCalculation(
            Action <PipingCalculationRow> setProperty,
            IPipingCalculationScenario <PipingInput> 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 PipingCalculationRow(calculation, string.Empty, handler);

            // Call
            setProperty(row);

            // Assert
            Assert.IsTrue(handler.Called);
            mocks.VerifyAll();
        }
示例#2
0
        private static void SetPropertyToInvalidValueAndVerifyException(
            Action <PipingCalculationRow> setProperty,
            IPipingCalculationScenario <PipingInput> calculation,
            string expectedMessage)
        {
            // Setup
            var mocks      = new MockRepository();
            var observable = mocks.StrictMock <IObservable>();

            mocks.ReplayAll();

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

            var row = new PipingCalculationRow(calculation, string.Empty, handler);

            // Call
            void Call() => setProperty(row);

            // Assert
            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentOutOfRangeException>(Call, expectedMessage);
            Assert.IsTrue(handler.Called);
            mocks.VerifyAll();
        }
示例#3
0
        private static void AssertPropertyChangeWithOrWithoutCalculationOutput(
            Action <PipingCalculationRow> setProperty,
            Action <IPipingCalculationScenario <PipingInput> > 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();

            IPipingCalculationScenario <PipingInput> calculation =
                PipingCalculationScenarioTestFactory.CreateCalculationWithValidInput(new TestHydraulicBoundaryLocation(), hasOutput);

            var row = new PipingCalculationRow(calculation, string.Empty, handler);

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

            // Call
            setProperty(row);

            // Assert
            assertions(calculation);
            if (expectUpdates)
            {
                Assert.IsFalse(calculation.HasOutput);
            }
            else
            {
                Assert.AreEqual(hasOutput, calculation.HasOutput);
            }

            mockRepository.VerifyAll();
        }
示例#4
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks   = new MockRepository();
            var handler = mocks.Stub <IObservablePropertyChangeHandler>();

            mocks.ReplayAll();

            const string calculationType = "Test";

            var surfaceLine = new PipingSurfaceLine(string.Empty);

            surfaceLine.SetGeometry(new[]
            {
                new Point3D(0.0, 0.0, 0.0),
                new Point3D(1.0, 0.0, 10)
            });

            PipingStochasticSoilModel   stochasticSoilModel   = PipingStochasticSoilModelTestFactory.CreatePipingStochasticSoilModel();
            PipingStochasticSoilProfile stochasticSoilProfile = stochasticSoilModel.StochasticSoilProfiles.First();

            var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();

            var dampingFactorExitMean = (RoundedDouble)1.0;
            var phreaticLevelExitMean = (RoundedDouble)2.0;

            var calculation = new TestPipingCalculationScenario
            {
                InputParameters =
                {
                    DampingFactorExit         =
                    {
                        Mean                  = dampingFactorExitMean
                    },
                    PhreaticLevelExit         =
                    {
                        Mean                  = phreaticLevelExitMean
                    },
                    SurfaceLine               = surfaceLine,
                    StochasticSoilModel       = stochasticSoilModel,
                    StochasticSoilProfile     = stochasticSoilProfile,
                    HydraulicBoundaryLocation = hydraulicBoundaryLocation
                }
            };

            // Call
            var row = new PipingCalculationRow(calculation, calculationType, handler);

            // Assert
            Assert.IsInstanceOf <CalculationRow <IPipingCalculationScenario <PipingInput> > >(row);

            Assert.AreSame(calculation, row.Calculation);
            Assert.AreEqual(calculation.Name, row.Name);
            Assert.AreEqual(calculationType, row.CalculationType);
            Assert.AreSame(stochasticSoilModel, row.StochasticSoilModel.WrappedObject);
            Assert.AreSame(stochasticSoilProfile, row.StochasticSoilProfile.WrappedObject);
            Assert.AreEqual(2, row.StochasticSoilProfileProbability.NumberOfDecimalPlaces);
            Assert.AreEqual(stochasticSoilProfile.Probability * 100, row.StochasticSoilProfileProbability, row.StochasticSoilProfileProbability.GetAccuracy());
            Assert.AreSame(hydraulicBoundaryLocation, row.SelectableHydraulicBoundaryLocation.WrappedObject.HydraulicBoundaryLocation);
            Assert.AreEqual(dampingFactorExitMean, row.DampingFactorExitMean);
            Assert.AreEqual(phreaticLevelExitMean, row.PhreaticLevelExitMean);
            Assert.AreEqual(calculation.InputParameters.EntryPointL, row.EntryPointL);
            Assert.AreEqual(calculation.InputParameters.ExitPointL, row.ExitPointL);
            mocks.VerifyAll();
        }