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(); }
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(); }
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(); }
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(); }