public void GivenDisposedPropertyControlWithData_WhenSingleCalculationUpdated_RefreshRequiredEventNotRaised() { // Given var mocks = new MockRepository(); var targetProbabilityChangeHandler = mocks.Stub <IObservablePropertyChangeHandler>(); mocks.ReplayAll(); var calculation = new DuneLocationCalculation(new TestDuneLocation()); var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.1) { DuneLocationCalculations = { calculation } }; using (var properties = new DuneLocationCalculationsForUserDefinedTargetProbabilityProperties(calculationsForTargetProbability, targetProbabilityChangeHandler)) { var refreshRequiredRaised = 0; properties.RefreshRequired += (sender, args) => refreshRequiredRaised++; properties.Dispose(); // When calculation.NotifyObservers(); // Then Assert.AreEqual(0, refreshRequiredRaised); mocks.VerifyAll(); } }
public void GivenMapLayerWithDuneLocations_WhenCalculationsForAddedUserDefinedTargetProbabilityUpdatedAndNotified_ThenMapDataUpdated() { // Given var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var failureMechanism = new DuneErosionFailureMechanism(); failureMechanism.SetDuneLocations(new[] { new TestDuneLocation("test1") }); using (var mapLayer = new DuneErosionLocationsMapLayer(failureMechanism)) { var targetProbability = new DuneLocationCalculationsForTargetProbability(0.1); targetProbability.DuneLocationCalculations.AddRange(failureMechanism.DuneLocations.Select(l => new DuneLocationCalculation(l))); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Add(targetProbability); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.NotifyObservers(); mapLayer.MapData.Attach(observer); // Precondition AssertDuneLocationsMapData(failureMechanism, mapLayer.MapData); // When DuneLocationCalculation duneLocationCalculation = targetProbability.DuneLocationCalculations.First(); duneLocationCalculation.Output = new TestDuneLocationCalculationOutput(); duneLocationCalculation.NotifyObservers(); // Then AssertDuneLocationsMapData(failureMechanism, mapLayer.MapData); } mocks.VerifyAll(); }
protected override void OnFinish() { duneLocationCalculation.NotifyObservers(); }