Esempio n. 1
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();
        }