private static void SetPropertyAndVerifyNotificationsAndOutputForCalculation( Action <MacroStabilityInwardsCalculationRow> setProperty, MacroStabilityInwardsCalculationScenario 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 MacroStabilityInwardsCalculationRow(calculation, handler); // Call setProperty(row); // Assert Assert.IsTrue(handler.Called); mocks.VerifyAll(); }
private static void AssertPropertyChangeWithOrWithoutCalculationOutput( Action <MacroStabilityInwardsCalculationRow> setProperty, Action <MacroStabilityInwardsCalculationScenario> 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(); MacroStabilityInwardsOutput assignedOutput = null; MacroStabilityInwardsCalculationScenario calculation = MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenarioWithValidInput(new TestHydraulicBoundaryLocation()); if (hasOutput) { assignedOutput = MacroStabilityInwardsOutputTestFactory.CreateOutput(); } calculation.Output = assignedOutput; var row = new MacroStabilityInwardsCalculationRow(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); } mockRepository.VerifyAll(); }
public void Constructor_ExpectedValues() { // Setup var mocks = new MockRepository(); var handler = mocks.Stub <IObservablePropertyChangeHandler>(); mocks.ReplayAll(); var surfaceLine = new MacroStabilityInwardsSurfaceLine(string.Empty); MacroStabilityInwardsStochasticSoilModel stochasticSoilModel = MacroStabilityInwardsStochasticSoilModelTestFactory.CreateValidStochasticSoilModel(); MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile = stochasticSoilModel.StochasticSoilProfiles.First(); var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); var calculation = new MacroStabilityInwardsCalculationScenario { InputParameters = { SurfaceLine = surfaceLine, StochasticSoilModel = stochasticSoilModel, StochasticSoilProfile = stochasticSoilProfile, HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; // Call var row = new MacroStabilityInwardsCalculationRow(calculation, handler); // Assert Assert.IsInstanceOf <CalculationRow <MacroStabilityInwardsCalculationScenario> >(row); Assert.AreSame(calculation, row.Calculation); Assert.AreEqual(calculation.Name, row.Name); Assert.AreSame(calculation.InputParameters.StochasticSoilModel, row.StochasticSoilModel.WrappedObject); Assert.AreSame(calculation.InputParameters.StochasticSoilProfile, row.StochasticSoilProfile.WrappedObject); Assert.AreEqual(2, row.StochasticSoilProfileProbability.NumberOfDecimalPlaces); Assert.AreEqual(calculation.InputParameters.StochasticSoilProfile.Probability * 100, row.StochasticSoilProfileProbability, row.StochasticSoilProfileProbability.GetAccuracy()); Assert.AreSame(hydraulicBoundaryLocation, row.SelectableHydraulicBoundaryLocation.WrappedObject.HydraulicBoundaryLocation); mocks.VerifyAll(); }