public void Name_AlwaysOnChange_NotifyObserverAndCalculationPropertyChanged() { // Setup var mockRepository = new MockRepository(); var observer = mockRepository.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); var handler = mockRepository.Stub <IObservablePropertyChangeHandler>(); mockRepository.ReplayAll(); const string newValue = "Test new name"; var calculation = new TestCalculation(); var row = new TestCalculationRow(calculation, handler); calculation.Attach(observer); // Call row.Name = newValue; // Assert Assert.AreEqual(newValue, calculation.Name); mockRepository.VerifyAll(); }
public void Constructor_ExpectedValues() { // Setup var mocks = new MockRepository(); var handler = mocks.Stub <IObservablePropertyChangeHandler>(); mocks.ReplayAll(); var calculation = new TestCalculation { InputParameters = { HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; // Call var row = new TestCalculationRow(calculation, handler); // Assert Assert.AreSame(calculation, row.Calculation); Assert.AreEqual(calculation.Name, row.Name); Assert.AreSame(calculation.InputParameters.HydraulicBoundaryLocation, row.SelectableHydraulicBoundaryLocation.WrappedObject.HydraulicBoundaryLocation); mocks.VerifyAll(); }
private static void SetPropertyAndVerifyNotificationsAndOutputForCalculation( Action <CalculationRow <TestCalculation> > setProperty, TestCalculation 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 TestCalculationRow(calculation, handler); // Call setProperty(row); // Assert Assert.IsTrue(handler.Called); mocks.VerifyAll(); }
private static void AssertPropertyChangeWithOrWithoutCalculationOutput( Action <CalculationRow <TestCalculation> > setProperty, Action <TestCalculation> 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(); object assignedOutput = null; var calculation = new TestCalculation { InputParameters = { HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; if (hasOutput) { assignedOutput = new object(); } calculation.Output = assignedOutput; var row = new TestCalculationRow(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); } }