public void IsEnabled_CalculationsWithoutOutput_ReturnFalse() { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.1) { DuneLocationCalculations = { new DuneLocationCalculation(new TestDuneLocation()) } }; var context = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, new DuneErosionFailureMechanism(), assessmentSection); using (var plugin = new DuneErosionPlugin()) { ExportInfo info = GetExportInfo(plugin); // Call bool isEnabled = info.IsEnabled(context); // Assert Assert.IsFalse(isEnabled); } mocks.VerifyAll(); }
private static void AssertDuneLocationCalculationCollectionEntity( DuneLocationCalculationsForTargetProbability expectedCalculations, DuneLocationCalculationForTargetProbabilityCollectionEntity entity) { Assert.AreEqual(expectedCalculations.TargetProbability, entity.TargetProbability); Assert.AreEqual(expectedCalculations.DuneLocationCalculations.Count, entity.DuneLocationCalculationEntities.Count); }
public void GivenContextWithObserverAttached_WhenNotifyingObserversOfDuneLocationCalculationsForUserDefinedTargetProbability_ThenObserverCorrectlyNotified() { // Given var mockRepository = new MockRepository(); var observer = mockRepository.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mockRepository.ReplayAll(); var assessmentSection = new AssessmentSectionStub(); var failureMechanism = new DuneErosionFailureMechanism(); var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.1); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Add(calculationsForTargetProbability); var context = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, failureMechanism, assessmentSection); context.Attach(observer); // When failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.First().NotifyObservers(); // Then mockRepository.VerifyAll(); }
public void CreateCalculationActivitiesForFailureMechanism_WithValidDataAndUsePreprocessorStates_ReturnsExpectedActivities(bool usePreprocessor) { // Setup AssessmentSectionStub assessmentSection = CreateAssessmentSection(usePreprocessor); var duneLocationCalculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); var duneLocationCalculationsForTargetProbability2 = new DuneLocationCalculationsForTargetProbability(0.01); var failureMechanism = new DuneErosionFailureMechanism { DuneLocationCalculationsForUserDefinedTargetProbabilities = { duneLocationCalculationsForTargetProbability1, duneLocationCalculationsForTargetProbability2 } }; var duneLocation1 = new DuneLocation(1, "locationName1", new Point2D(1, 1), new DuneLocation.ConstructionProperties()); var duneLocation2 = new DuneLocation(2, "locationName2", new Point2D(2, 2), new DuneLocation.ConstructionProperties()); failureMechanism.SetDuneLocations(new[] { duneLocation1, duneLocation2 }); // Call CalculatableActivity[] activities = DuneLocationCalculationActivityFactory.CreateCalculationActivities(failureMechanism, assessmentSection).ToArray(); // Assert Assert.AreEqual(4, activities.Length); HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; AssertDuneLocationCalculationActivity(activities[0], "1/10", duneLocation1.Name, duneLocation1.Id, duneLocationCalculationsForTargetProbability1.TargetProbability, hydraulicBoundaryDatabase); AssertDuneLocationCalculationActivity(activities[1], "1/10", duneLocation2.Name, duneLocation2.Id, duneLocationCalculationsForTargetProbability1.TargetProbability, hydraulicBoundaryDatabase); AssertDuneLocationCalculationActivity(activities[2], "1/100", duneLocation1.Name, duneLocation1.Id, duneLocationCalculationsForTargetProbability2.TargetProbability, hydraulicBoundaryDatabase); AssertDuneLocationCalculationActivity(activities[3], "1/100", duneLocation2.Name, duneLocation2.Id, duneLocationCalculationsForTargetProbability2.TargetProbability, hydraulicBoundaryDatabase); }
private static IEnumerable <TestCaseData> GetTargetProbabilityItemShiftActionTestCases() { foreach (string displayNameFormat in GetOutputDisplayNameFormats()) { yield return(new TestCaseData( new Action <ObservableList <DuneLocationCalculationsForTargetProbability> >(col => { DuneLocationCalculationsForTargetProbability itemToMove = col.First(); col.Remove(itemToMove); col.Add(itemToMove); }), $"{displayNameFormat}", $"{displayNameFormat} (2)") .SetName(string.Format(displayNameFormat, "MoveItemDown"))); yield return(new TestCaseData( new Action <ObservableList <DuneLocationCalculationsForTargetProbability> >(col => { DuneLocationCalculationsForTargetProbability itemToMove = col.Last(); col.Remove(itemToMove); col.Insert(0, itemToMove); }), $"{displayNameFormat} (2)", $"{displayNameFormat}") .SetName(string.Format(displayNameFormat, "MoveItemUp"))); } }
public void SetPropertyValueAfterConfirmation_CalculationsForTargetProbabilityWithAndWithoutOutput_AllCalculationOutputClearedAndReturnsAllAffectedObjects() { // Setup DialogBoxHandler = (name, wnd) => { var tester = new MessageBoxTester(wnd); tester.ClickOk(); }; DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = CreateCalculationsForTargetProbabilityWithAndWithoutOutput(); List <object> expectedAffectedObjects = calculationsForTargetProbability.DuneLocationCalculations .Where(dlc => dlc.Output != null) .Cast <object>() .ToList(); expectedAffectedObjects.Add(calculationsForTargetProbability); var handler = new DuneLocationCalculationsForTargetProbabilityChangeHandler(calculationsForTargetProbability); IEnumerable <IObservable> affectedObjects = null; // Call void Call() => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => {}); // Assert var expectedMessages = new[] { "Alle bijbehorende hydraulische belastingen zijn verwijderd." }; TestHelper.AssertLogMessagesAreGenerated(Call, expectedMessages, 1); CollectionAssert.IsEmpty(calculationsForTargetProbability.DuneLocationCalculations.Where(dlc => dlc.Output != null)); CollectionAssert.AreEquivalent(expectedAffectedObjects, affectedObjects); }
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 Text_WithContext_ReturnsUniquelyFormattedTargetProbability(double userDefinedTargetProbability1, double userDefinedTargetProbability2, double userDefinedTargetProbability3, string expectedText) { // Setup var failureMechanism = new DuneErosionFailureMechanism(); var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(userDefinedTargetProbability2); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.AddRange(new[] { new DuneLocationCalculationsForTargetProbability(userDefinedTargetProbability1), new DuneLocationCalculationsForTargetProbability(userDefinedTargetProbability3), calculationsForTargetProbability }); var context = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, failureMechanism, new AssessmentSectionStub(new[] { failureMechanism })); // Call string text = info.Text(context); // Assert Assert.AreEqual(expectedText, text); }
public void Create_WithValidCollection_ReturnsEntityWithExpectedResults() { // Setup var random = new Random(21); int order = random.Next(); var duneLocation = new TestDuneLocation(); var calculation = new DuneLocationCalculation(duneLocation); var calculations = new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.1)) { DuneLocationCalculations = { calculation } }; var duneLocationEntity = new DuneLocationEntity(); var registry = new PersistenceRegistry(); registry.Register(duneLocationEntity, duneLocation); // Call DuneLocationCalculationForTargetProbabilityCollectionEntity entity = calculations.Create(order, registry); // Assert Assert.IsNotNull(entity); Assert.AreEqual(order, entity.Order); Assert.AreEqual(calculations.TargetProbability, entity.TargetProbability); DuneLocationCalculationEntity duneLocationCalculationEntity = entity.DuneLocationCalculationEntities.Single(); Assert.AreSame(duneLocationEntity, duneLocationCalculationEntity.DuneLocationEntity); CollectionAssert.IsEmpty(duneLocationCalculationEntity.DuneLocationCalculationOutputEntities); }
public void TargetProbability_Always_InputChangedAndObservablesNotified() { // Setup var mocks = new MockRepository(); var observable = mocks.StrictMock <IObservable>(); observable.Expect(o => o.NotifyObservers()); mocks.ReplayAll(); var customHandler = new SetPropertyValueAfterConfirmationParameterTester(new[] { observable }); var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.1) { DuneLocationCalculations = { new DuneLocationCalculation(new TestDuneLocation()) } }; var properties = new DuneLocationCalculationsForUserDefinedTargetProbabilityProperties( calculationsForTargetProbability, customHandler); // Call properties.TargetProbability = 0.01; // Assert mocks.VerifyAll(); }
public void SetDuneLocations_Always_PreviousLocationsAndCalculationsCleared() { // Setup var calculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); var calculationsForTargetProbability2 = new DuneLocationCalculationsForTargetProbability(0.01); var failureMechanism = new DuneErosionFailureMechanism { DuneLocationCalculationsForUserDefinedTargetProbabilities = { calculationsForTargetProbability1, calculationsForTargetProbability2 } }; failureMechanism.SetDuneLocations(new DuneLocation[] { new TestDuneLocation() }); // Precondition CollectionAssert.IsNotEmpty(failureMechanism.DuneLocations); CollectionAssert.IsNotEmpty(calculationsForTargetProbability1.DuneLocationCalculations); CollectionAssert.IsNotEmpty(calculationsForTargetProbability2.DuneLocationCalculations); // Call failureMechanism.SetDuneLocations(Enumerable.Empty <DuneLocation>()); // Assert CollectionAssert.IsEmpty(failureMechanism.DuneLocations); CollectionAssert.IsEmpty(calculationsForTargetProbability1.DuneLocationCalculations); CollectionAssert.IsEmpty(calculationsForTargetProbability2.DuneLocationCalculations); }
public void CanDrop_DraggedDataPartOfGroupContext_ReturnsTrue() { // Setup using (var plugin = new DuneErosionPlugin()) { TreeNodeInfo info = GetInfo(plugin); var assessmentSectionStub = new AssessmentSectionStub(); var failureMechanism = new DuneErosionFailureMechanism(); var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.1); var targetData = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext( new ObservableList <DuneLocationCalculationsForTargetProbability> { calculationsForTargetProbability }, failureMechanism, assessmentSectionStub); var draggedData = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext( calculationsForTargetProbability, failureMechanism, assessmentSectionStub); // Call bool canDrop = info.CanDrop(draggedData, targetData); // Assert Assert.IsTrue(canDrop); } }
public void Constructor_WithData_ReturnExpectedValues() { // Setup 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 } }; // Call using (var properties = new DuneLocationCalculationsForUserDefinedTargetProbabilityProperties(calculationsForTargetProbability, targetProbabilityChangeHandler)) { // Assert Assert.IsInstanceOf <ObjectProperties <DuneLocationCalculationsForTargetProbability> >(properties); Assert.IsInstanceOf <IDisposable>(properties); Assert.AreSame(calculationsForTargetProbability, properties.Data); Assert.AreEqual(calculationsForTargetProbability.TargetProbability, properties.TargetProbability); Assert.AreEqual(1, properties.Calculations.Length); Assert.AreSame(calculation, properties.Calculations[0].Data); mocks.VerifyAll(); } }
public void ChildNodeObjects_NoDuneLocationsPresent_ReturnsExpectedChildData() { // Setup var duneLocationCalculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); var duneLocationCalculationsForTargetProbability2 = new DuneLocationCalculationsForTargetProbability(0.01); var calculationsForTargetProbabilities = new ObservableList <DuneLocationCalculationsForTargetProbability> { duneLocationCalculationsForTargetProbability1, duneLocationCalculationsForTargetProbability2 }; var calculationsGroupContext = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext(calculationsForTargetProbabilities, new DuneErosionFailureMechanism(), new AssessmentSectionStub()); using (var plugin = new DuneErosionPlugin()) { TreeNodeInfo info = GetInfo(plugin); // Call object[] childNodeObjects = info.ChildNodeObjects(calculationsGroupContext); // Assert CollectionAssert.IsEmpty(childNodeObjects); } }
public void Read_EntityWithValidValues_SetsCalculationsWithExpectedValues() { // Setup var random = new Random(21); var duneLocationEntityOne = new DuneLocationEntity(); var calculationEntityWithoutOutput = new DuneLocationCalculationEntity { DuneLocationEntity = duneLocationEntityOne }; var duneLocationEntityTwo = new DuneLocationEntity(); var calculationEntityWithOutput = new DuneLocationCalculationEntity { DuneLocationEntity = duneLocationEntityTwo, DuneLocationCalculationOutputEntities = { new DuneLocationCalculationOutputEntity() } }; var collectionEntity = new DuneLocationCalculationForTargetProbabilityCollectionEntity { TargetProbability = random.NextDouble(0, 0.1), DuneLocationCalculationEntities = { calculationEntityWithoutOutput, calculationEntityWithOutput } }; var duneLocationOne = new TestDuneLocation("1"); var duneLocationTwo = new TestDuneLocation("2"); var collector = new ReadConversionCollector(); collector.Read(duneLocationEntityOne, duneLocationOne); collector.Read(duneLocationEntityTwo, duneLocationTwo); // Call DuneLocationCalculationsForTargetProbability calculations = collectionEntity.Read(collector); // Assert Assert.AreEqual(collectionEntity.TargetProbability, calculations.TargetProbability); IEnumerable <DuneLocationCalculation> duneLocationCalculations = calculations.DuneLocationCalculations; Assert.AreEqual(collectionEntity.DuneLocationCalculationEntities.Count, duneLocationCalculations.Count()); DuneLocationCalculation calculationOne = duneLocationCalculations.ElementAt(0); Assert.AreSame(collector.Get(duneLocationEntityOne), calculationOne.DuneLocation); Assert.IsNull(calculationOne.Output); DuneLocationCalculation calculationTwo = duneLocationCalculations.ElementAt(1); Assert.AreSame(collector.Get(duneLocationEntityTwo), calculationTwo.DuneLocation); Assert.IsNotNull(calculationTwo.Output); }
/// <summary> /// Creates a new instance of <see cref="DuneLocationCalculationsForTargetProbabilityChangeHandler"/>. /// </summary> /// <param name="calculationsForTargetProbability">The calculations to change the target probability for.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="calculationsForTargetProbability"/> is <c>null</c>.</exception> public DuneLocationCalculationsForTargetProbabilityChangeHandler(DuneLocationCalculationsForTargetProbability calculationsForTargetProbability) { if (calculationsForTargetProbability == null) { throw new ArgumentNullException(nameof(calculationsForTargetProbability)); } this.calculationsForTargetProbability = calculationsForTargetProbability; }
private void UpdateMetaData(IEnumerable <DuneLocationCalculationsForTargetProbability> calculationsForTargetProbabilities) { var newMetaDataItemsLookups = new Dictionary <DuneLocationCalculationsForTargetProbability, MetaDataItemsLookup>(); var waterLevelMetaDataItemsCounter = 0; var waveHeightMetaDataItemsCounter = 0; var wavePeriodMetaDataItemsCounter = 0; foreach (string metaData in MapData.MetaData) { if (metaData.Contains(string.Format(Resources.MetaData_WaterLevel_TargetProbability_0, string.Empty))) { AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(waterLevelMetaDataItemsCounter), lookupItem => lookupItem.WaterLevelMetaDataItem = metaData); waterLevelMetaDataItemsCounter++; } else if (metaData.Contains(string.Format(Resources.MetaData_WaveHeight_TargetProbability_0, string.Empty))) { AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(waveHeightMetaDataItemsCounter), lookupItem => lookupItem.WaveHeightMetaDataItem = metaData); waveHeightMetaDataItemsCounter++; } else if (metaData.Contains(string.Format(Resources.MetaData_WavePeriod_TargetProbability_0, string.Empty))) { AddMetaDataItemToLookup(newMetaDataItemsLookups, calculationsForTargetProbabilities.ElementAt(wavePeriodMetaDataItemsCounter), lookupItem => lookupItem.WavePeriodMetaDataItem = metaData); wavePeriodMetaDataItemsCounter++; } } string currentSelectedMetaDataAttribute = MapData.SelectedMetaDataAttribute; foreach (KeyValuePair <DuneLocationCalculationsForTargetProbability, MetaDataItemsLookup> currentMetaDataItemLookup in currentMetaDataItemsLookups) { MetaDataItemsLookup currentMetaDataItem = currentMetaDataItemLookup.Value; if (currentSelectedMetaDataAttribute == currentMetaDataItem.WaterLevelMetaDataItem || currentSelectedMetaDataAttribute == currentMetaDataItem.WaveHeightMetaDataItem || currentSelectedMetaDataAttribute == currentMetaDataItem.WavePeriodMetaDataItem) { DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = currentMetaDataItemLookup.Key; if (!newMetaDataItemsLookups.ContainsKey(calculationsForTargetProbability)) { MapData.SelectedMetaDataAttribute = RiskeerCommonUtilResources.MetaData_Name; } else { MetaDataItemsLookup newMetaDataItem = newMetaDataItemsLookups[calculationsForTargetProbability]; SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaterLevelMetaDataItem, newMetaDataItem.WaterLevelMetaDataItem); SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WaveHeightMetaDataItem, newMetaDataItem.WaveHeightMetaDataItem); SetSelectedMetaDataAttribute(currentSelectedMetaDataAttribute, currentMetaDataItem.WavePeriodMetaDataItem, newMetaDataItem.WavePeriodMetaDataItem); } } } currentMetaDataItemsLookups = newMetaDataItemsLookups; }
public void Constructor_ValidTargetProbability_ExpectedProperties(double validValue) { // Call var duneLocationCalculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(validValue); // Assert Assert.IsInstanceOf <Observable>(duneLocationCalculationsForTargetProbability); Assert.AreEqual(validValue, duneLocationCalculationsForTargetProbability.TargetProbability); Assert.IsEmpty(duneLocationCalculationsForTargetProbability.DuneLocationCalculations); }
public void GivenPluginWithGuiSetAndOpenedDuneLocationCalculationsView_WhenUserDefinedTargetProbabilityRemovedFromCollectionAndObserversNotified_ThenViewTitleUpdated() { // Given var mocks = new MockRepository(); var projectStore = mocks.Stub <IStoreProject>(); var projectMigrator = mocks.Stub <IMigrateProject>(); var projectFactory = mocks.Stub <IProjectFactory>(); var project = mocks.Stub <IProject>(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, projectFactory, new GuiCoreSettings())) { gui.Plugins.AddRange(new PluginBase[] { new DuneErosionPlugin() }); gui.Run(); gui.SetProject(project, null); const double targetProbability = 0.1; var removedCalculations = new DuneLocationCalculationsForTargetProbability(targetProbability); var affectedCalculations = new DuneLocationCalculationsForTargetProbability(targetProbability); var failureMechanism = new DuneErosionFailureMechanism { DuneLocationCalculationsForUserDefinedTargetProbabilities = { removedCalculations, affectedCalculations } }; gui.DocumentViewController.CloseAllViews(); gui.DocumentViewController.OpenViewForData(new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(affectedCalculations, failureMechanism, assessmentSection)); IView view = gui.ViewHost.DocumentViews.First(); // Precondition Assert.IsInstanceOf <DuneLocationCalculationsView>(view); Assert.IsTrue(AvalonDockViewHostTestHelper.IsTitleSet((AvalonDockViewHost)gui.ViewHost, view, "Hydraulische belastingen - 1/10 (1)")); // When failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Remove(removedCalculations); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.NotifyObservers(); // Then Assert.IsTrue(AvalonDockViewHostTestHelper.IsTitleSet((AvalonDockViewHost)gui.ViewHost, view, "Hydraulische belastingen - 1/10")); mocks.VerifyAll(); } }
private static void AddMetaDataItemToLookup(IDictionary <DuneLocationCalculationsForTargetProbability, MetaDataItemsLookup> lookup, DuneLocationCalculationsForTargetProbability calculationsForTargetProbability, Action <MetaDataItemsLookup> setMetaDataAction) { if (!lookup.ContainsKey(calculationsForTargetProbability)) { lookup.Add(calculationsForTargetProbability, new MetaDataItemsLookup()); } setMetaDataAction(lookup[calculationsForTargetProbability]); }
public void TargetProbability_ValidValue_NewValueSet(double validValue) { // Setup var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.01); // Call calculationsForTargetProbability.TargetProbability = validValue; // Assert Assert.AreEqual(validValue, calculationsForTargetProbability.TargetProbability); }
public void OnDrop_DataDroppedToDifferentIndex_DroppedDataCorrectlyMovedAndObserversNotified() { // Setup using (var plugin = new DuneErosionPlugin()) { TreeNodeInfo info = GetInfo(plugin); var assessmentSectionStub = new AssessmentSectionStub(); var failureMechanism = new DuneErosionFailureMechanism(); var calculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); var calculationsForTargetProbability2 = new DuneLocationCalculationsForTargetProbability(0.01); var calculationsForTargetProbability3 = new DuneLocationCalculationsForTargetProbability(0.001); var calculationsForTargetProbabilities = new ObservableList <DuneLocationCalculationsForTargetProbability> { calculationsForTargetProbability1, calculationsForTargetProbability2, calculationsForTargetProbability3 }; var parentData = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext( calculationsForTargetProbabilities, failureMechanism, assessmentSectionStub); var droppedData = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext( calculationsForTargetProbability3, failureMechanism, assessmentSectionStub); var mockRepository = new MockRepository(); var observer = mockRepository.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mockRepository.ReplayAll(); calculationsForTargetProbabilities.Attach(observer); // Call info.OnDrop(droppedData, parentData, parentData, 1, null); // Assert CollectionAssert.AreEquivalent(new[] { calculationsForTargetProbability1, calculationsForTargetProbability3, calculationsForTargetProbability2 }, calculationsForTargetProbabilities); mockRepository.VerifyAll(); } }
public void GivenPluginWithGuiSetAndOpenedDuneLocationCalculationsView_WhenRemovingDataForOpenedViewAndObserversNotified_ThenNoExceptionThrown() { // Given var mocks = new MockRepository(); var projectStore = mocks.Stub <IStoreProject>(); var projectMigrator = mocks.Stub <IMigrateProject>(); var projectFactory = mocks.Stub <IProjectFactory>(); var project = mocks.Stub <IProject>(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, projectFactory, new GuiCoreSettings())) { gui.Plugins.AddRange(new PluginBase[] { new DuneErosionPlugin() }); gui.Run(); gui.SetProject(project, null); var calculations = new DuneLocationCalculationsForTargetProbability(0.1); var failureMechanism = new DuneErosionFailureMechanism { DuneLocationCalculationsForUserDefinedTargetProbabilities = { calculations } }; gui.SetProject(project, null); gui.DocumentViewController.CloseAllViews(); gui.DocumentViewController.OpenViewForData(new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(calculations, failureMechanism, assessmentSection)); IView view = gui.ViewHost.DocumentViews.First(); // Precondition Assert.IsInstanceOf <DuneLocationCalculationsView>(view); // When failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Remove(calculations); void Call() => failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.NotifyObservers(); // Then Assert.DoesNotThrow(Call); mocks.VerifyAll(); } }
public void TargetProbability_InvalidValue_ThrowsArgumentOutOfRangeException(double invalidValue) { // Setup var calculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.01); // Call void Call() => calculationsForTargetProbability.TargetProbability = invalidValue; // Assert const string expectedMessage = "De waarde van de doelkans moet groter zijn dan 0 en kleiner dan of gelijk aan 0,1."; var exception = Assert.Throws <ArgumentOutOfRangeException>(Call); StringAssert.StartsWith(expectedMessage, exception.Message); }
public void Create_PersistenceRegistryNull_ThrowsArgumentNullException() { // Setup var random = new Random(21); var calculations = new DuneLocationCalculationsForTargetProbability(random.NextDouble(0, 0.1)); // Call void Call() => calculations.Create(random.Next(), null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("registry", exception.ParamName); }
public void Constructor_ExpectedValues() { // Setup var assessmentSection = new AssessmentSectionStub(); var failureMechanism = new DuneErosionFailureMechanism(); var duneLocationCalculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(0.1); // Call var context = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(duneLocationCalculationsForTargetProbability, failureMechanism, assessmentSection); // Assert Assert.IsInstanceOf <LocationCalculationsContext <DuneLocationCalculationsForTargetProbability, DuneLocationCalculationsForTargetProbability> >(context); Assert.AreSame(duneLocationCalculationsForTargetProbability, context.WrappedData); Assert.AreSame(assessmentSection, context.AssessmentSection); }
public void ChildNodeObjects_DuneLocationsPresent_ReturnsExpectedChildData() { // Setup var assessmentSection = new AssessmentSectionStub(); var failureMechanism = new DuneErosionFailureMechanism(); failureMechanism.SetDuneLocations(new[] { new TestDuneLocation() }); var duneLocationCalculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); var duneLocationCalculationsForTargetProbability2 = new DuneLocationCalculationsForTargetProbability(0.01); var calculationsForTargetProbabilities = new ObservableList <DuneLocationCalculationsForTargetProbability> { duneLocationCalculationsForTargetProbability1, duneLocationCalculationsForTargetProbability2 }; var calculationsGroupContext = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext( calculationsForTargetProbabilities, failureMechanism, assessmentSection); using (var plugin = new DuneErosionPlugin()) { TreeNodeInfo info = GetInfo(plugin); // Call object[] childNodeObjects = info.ChildNodeObjects(calculationsGroupContext); // Assert Assert.AreEqual(2, childNodeObjects.Length); DuneLocationCalculationsForUserDefinedTargetProbabilityContext[] calculationsContexts = childNodeObjects.OfType <DuneLocationCalculationsForUserDefinedTargetProbabilityContext>().ToArray(); Assert.AreEqual(2, calculationsContexts.Length); Assert.AreSame(duneLocationCalculationsForTargetProbability1, calculationsContexts[0].WrappedData); Assert.AreSame(failureMechanism, calculationsContexts[0].FailureMechanism); Assert.AreSame(assessmentSection, calculationsContexts[0].AssessmentSection); Assert.AreSame(duneLocationCalculationsForTargetProbability2, calculationsContexts[1].WrappedData); Assert.AreSame(failureMechanism, calculationsContexts[1].FailureMechanism); Assert.AreSame(assessmentSection, calculationsContexts[1].AssessmentSection); } }
public void GivenMapLayerWithDuneLocations_WhenNotSelectedTargetProbabilityRemovedAndNotified_ThenMapDataUpdated(string displayName) { // Given var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var failureMechanism = new DuneErosionFailureMechanism(); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Add( new DuneLocationCalculationsForTargetProbability(0.1)); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Add( new DuneLocationCalculationsForTargetProbability(0.001)); failureMechanism.SetDuneLocations(new[] { new TestDuneLocation("test1") }); using (var mapLayer = new DuneErosionLocationsMapLayer(failureMechanism)) { DuneLocationCalculationsForTargetProbability calculationsForTargetProbabilityToRemove = failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.First(); DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Last(); mapLayer.MapData.SelectedMetaDataAttribute = string.Format(displayName, ProbabilityFormattingHelper.Format(calculationsForTargetProbability.TargetProbability)); mapLayer.MapData.NotifyObservers(); mapLayer.MapData.Attach(observer); // Precondition AssertDuneLocationsMapData(failureMechanism, mapLayer.MapData); // When failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Remove(calculationsForTargetProbabilityToRemove); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.NotifyObservers(); // Then AssertDuneLocationsMapData(failureMechanism, mapLayer.MapData); Assert.AreEqual(string.Format(displayName, ProbabilityFormattingHelper.Format(calculationsForTargetProbability.TargetProbability)), mapLayer.MapData.SelectedMetaDataAttribute); } mocks.VerifyAll(); }
public void SetPropertyValueAfterConfirmation_CalculationsForTargetProbabilityWithoutOutput_ReturnsAffectedObjectsAndDoesNotLog() { // Setup DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = CreateCalculationsForTargetProbabilityWithoutOutput(); var handler = new DuneLocationCalculationsForTargetProbabilityChangeHandler( calculationsForTargetProbability); DuneLocationCalculationsForTargetProbability[] expectedAffectedObjects = { calculationsForTargetProbability }; IEnumerable <IObservable> affectedObjects = null; // Call void Call() => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => {}); // Assert TestHelper.AssertLogMessagesCount(Call, 0); CollectionAssert.AreEquivalent(expectedAffectedObjects, affectedObjects); }
public void SetPropertyValueAfterConfirmation_ConfirmationNotGiven_SetValueNotCalledReturnsNoAffectedObjects() { // Setup DialogBoxHandler = (name, wnd) => { var tester = new MessageBoxTester(wnd); tester.ClickCancel(); }; DuneLocationCalculationsForTargetProbability calculationsForTargetProbability = CreateCalculationsForTargetProbabilityWithAndWithoutOutput(); var handler = new DuneLocationCalculationsForTargetProbabilityChangeHandler(calculationsForTargetProbability); var propertySet = 0; // Call IEnumerable <IObservable> affectedObjects = handler.SetPropertyValueAfterConfirmation(() => propertySet++); // Assert Assert.AreEqual(0, propertySet); Assert.AreEqual(2, calculationsForTargetProbability.DuneLocationCalculations.Count(dlc => dlc.Output != null)); CollectionAssert.IsEmpty(affectedObjects); }