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();
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
 protected override void OnFinish()
 {
     duneLocationCalculation.NotifyObservers();
 }