Index: Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresScenariosView.Designer.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rc2eca5bce82fe3b24899de033edd326dc75376ee --- Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresScenariosView.Designer.cs (.../StabilityPointStructuresScenariosView.Designer.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresScenariosView.Designer.cs (.../StabilityPointStructuresScenariosView.Designer.cs) (revision c2eca5bce82fe3b24899de033edd326dc75376ee) @@ -36,31 +36,8 @@ /// private void InitializeComponent() { - this.scenarioSelectionControl = new Riskeer.Common.Forms.ScenarioSelectionControl(); - this.SuspendLayout(); - // - // scenarioSelectionControl - // - this.scenarioSelectionControl.AutoScroll = true; - this.scenarioSelectionControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.scenarioSelectionControl.Location = new System.Drawing.Point(0, 0); - this.scenarioSelectionControl.Name = "scenarioSelectionControl"; - this.scenarioSelectionControl.Size = new System.Drawing.Size(150, 150); - this.scenarioSelectionControl.TabIndex = 0; - // - // StabilityPointStructuresScenariosView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoScroll = true; - this.Controls.Add(this.scenarioSelectionControl); - this.Name = "StabilityPointStructuresScenariosView"; - this.ResumeLayout(false); - } #endregion - - private Common.Forms.ScenarioSelectionControl scenarioSelectionControl; } } Index: Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresScenariosView.cs =================================================================== diff -u -r1247659c87fbaeb6c5d0c29b9bb64aafd9adbac5 -rc2eca5bce82fe3b24899de033edd326dc75376ee --- Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresScenariosView.cs (.../StabilityPointStructuresScenariosView.cs) (revision 1247659c87fbaeb6c5d0c29b9bb64aafd9adbac5) +++ Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Forms/Views/StabilityPointStructuresScenariosView.cs (.../StabilityPointStructuresScenariosView.cs) (revision c2eca5bce82fe3b24899de033edd326dc75376ee) @@ -22,120 +22,58 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Windows.Forms; -using Core.Common.Base; -using Core.Common.Controls.Views; +using Core.Common.Base.Geometry; +using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Calculation; +using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.Structures; -using Riskeer.Common.Util; +using Riskeer.Common.Forms.Views; using Riskeer.StabilityPointStructures.Data; namespace Riskeer.StabilityPointStructures.Forms.Views { /// - /// View for configuring scenarios for the stability point structures failure mechanism. - /// Shows a grid view where for each failure mechanism section, a calculation within the section - /// can be selected. + /// View for configuring stability point structures scenarios. /// - public partial class StabilityPointStructuresScenariosView : UserControl, IView + public partial class StabilityPointStructuresScenariosView : ScenariosView, StabilityPointStructuresInput, + StabilityPointStructuresScenarioRow, StabilityPointStructuresFailureMechanism> { - private readonly RecursiveObserver calculationInputObserver; - private readonly RecursiveObserver calculationGroupObserver; - private readonly Observer failureMechanismObserver; - private StabilityPointStructuresFailureMechanism failureMechanism; - private CalculationGroup data; + private readonly IAssessmentSection assessmentSection; /// /// Creates a new instance of . /// - public StabilityPointStructuresScenariosView() + /// The data to show in this view. + /// The + /// the belongs to. + /// The assessment section the scenarios belong to. + /// Thrown when any parameter + /// is null. + public StabilityPointStructuresScenariosView(CalculationGroup calculationGroup, StabilityPointStructuresFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + : base(calculationGroup, failureMechanism) { - InitializeComponent(); - - failureMechanismObserver = new Observer(UpdateDataGridViewDataSource); - - // The concat is needed to observe the input of calculations in child groups. - calculationInputObserver = new RecursiveObserver( - UpdateDataGridViewDataSource, cg => cg.Children.Concat(cg.Children - .OfType>() - .Select(c => c.InputParameters))); - calculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, c => c.Children); - } - - /// - /// Gets or sets the failure mechanism. - /// - public StabilityPointStructuresFailureMechanism FailureMechanism - { - get + if (assessmentSection == null) { - return failureMechanism; + throw new ArgumentNullException(nameof(assessmentSection)); } - set - { - failureMechanism = value; - failureMechanismObserver.Observable = failureMechanism; - UpdateDataGridViewDataSource(); - } - } - public object Data - { - get - { - return data; - } - set - { - data = value as CalculationGroup; - - calculationInputObserver.Observable = data; - calculationGroupObserver.Observable = data; - - UpdateDataGridViewDataSource(); - } + this.assessmentSection = assessmentSection; } - protected override void OnLoad(EventArgs e) + protected override StabilityPointStructuresInput GetCalculationInput(StructuresCalculationScenario calculationScenario) { - UpdateDataGridViewDataSource(); - base.OnLoad(e); + return calculationScenario.InputParameters; } - protected override void Dispose(bool disposing) + protected override IEnumerable GetScenarioRows(FailureMechanismSection failureMechanismSection) { - failureMechanismObserver?.Dispose(); - calculationInputObserver.Dispose(); - calculationGroupObserver.Dispose(); + IEnumerable lineSegments = Math2D.ConvertPointsToLineSegments(failureMechanismSection.Points); + IEnumerable> calculations = CalculationGroup.GetCalculations() + .OfType>() + .Where(cs => cs.IsStructureIntersectionWithReferenceLineInSection(lineSegments)); - if (disposing) - { - components?.Dispose(); - } - - base.Dispose(disposing); + return calculations.Select(c => new StabilityPointStructuresScenarioRow(c, FailureMechanism, assessmentSection)).ToList(); } - - private void UpdateDataGridViewDataSource() - { - // scenarioSelectionControl.EndEdit(); - // - // if (failureMechanism?.SectionResults == null || data?.Children == null) - // { - // scenarioSelectionControl.ClearDataSource(); - // } - // else - // { - // ICalculation[] calculations = data.GetCalculations().ToArray(); - // - // IDictionary> calculationsPerSegment = - // StructuresHelper.CollectCalculationsPerSection(failureMechanism.Sections, - // calculations.Cast>()); - // - // List scenarioRows = failureMechanism.SectionResults.Select(sr => new StabilityPointStructuresScenarioRow(sr)).ToList(); - // - // scenarioSelectionControl.UpdateDataGridViewDataSource(calculations, scenarioRows, calculationsPerSegment); - // } - } } } \ No newline at end of file Index: Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs =================================================================== diff -u -r5806d848c8b646e450f092324efed255053413c7 -rc2eca5bce82fe3b24899de033edd326dc75376ee --- Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 5806d848c8b646e450f092324efed255053413c7) +++ Riskeer/StabilityPointStructures/src/Riskeer.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision c2eca5bce82fe3b24899de033edd326dc75376ee) @@ -121,7 +121,7 @@ GetViewData = context => context.WrappedData, GetViewName = (view, context) => RiskeerCommonFormsResources.Scenarios_DisplayName, Image = RiskeerCommonFormsResources.ScenariosIcon, - AfterCreate = (view, context) => view.FailureMechanism = context.ParentFailureMechanism, + CreateInstance = context => new StabilityPointStructuresScenariosView(context.WrappedData, context.ParentFailureMechanism, context.AssessmentSection), CloseForData = CloseScenariosViewForData }; } Index: Riskeer/StabilityPointStructures/test/Riskeer.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresScenariosViewTest.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rc2eca5bce82fe3b24899de033edd326dc75376ee --- Riskeer/StabilityPointStructures/test/Riskeer.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresScenariosViewTest.cs (.../StabilityPointStructuresScenariosViewTest.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/StabilityPointStructures/test/Riskeer.StabilityPointStructures.Forms.Test/Views/StabilityPointStructuresScenariosViewTest.cs (.../StabilityPointStructuresScenariosViewTest.cs) (revision c2eca5bce82fe3b24899de033edd326dc75376ee) @@ -19,28 +19,34 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Collections.Generic; -using System.Drawing; -using System.Linq; +using System; using System.Windows.Forms; +using Core.Common.Base.Data; using Core.Common.Base.Geometry; -using Core.Common.Controls.DataGrid; -using Core.Common.Controls.Views; using NUnit.Extensions.Forms; using NUnit.Framework; +using Rhino.Mocks; +using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Calculation; using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.Structures; using Riskeer.Common.Data.TestUtil; -using Riskeer.Common.Forms; +using Riskeer.Common.Forms.Helpers; +using Riskeer.Common.Forms.Views; using Riskeer.StabilityPointStructures.Data; +using Riskeer.StabilityPointStructures.Data.TestUtil; using Riskeer.StabilityPointStructures.Forms.Views; namespace Riskeer.StabilityPointStructures.Forms.Test.Views { [TestFixture] public class StabilityPointStructuresScenariosViewTest { + private const int isRelevantColumnIndex = 0; + private const int contributionColumnIndex = 1; + private const int nameColumnIndex = 2; + private const int failureProbabilityColumnIndex = 3; + private Form testForm; [SetUp] @@ -56,361 +62,129 @@ } [Test] - public void DefaultConstructor_DataGridViewCorrectlyInitialized() + public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException() { // Call - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - // Assert - Assert.IsInstanceOf(view); - Assert.IsInstanceOf(view); - Assert.IsTrue(view.AutoScroll); - Assert.IsNull(view.Data); - Assert.IsNull(view.FailureMechanism); + void Call() => new StabilityPointStructuresScenariosView(new CalculationGroup(), new StabilityPointStructuresFailureMechanism(), null); - var scenarioSelectionControl = new ControlTester("scenarioSelectionControl").TheObject as ScenarioSelectionControl; - - Assert.NotNull(scenarioSelectionControl); - Assert.AreEqual(new Size(0, 0), scenarioSelectionControl.MinimumSize); - } + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("assessmentSection", exception.ParamName); } [Test] - public void Data_ValidDataSet_ValidData() + public void Constructor_ExpectedValues() { // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - var calculationGroup = new CalculationGroup(); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); - // Call - view.Data = calculationGroup; + var calculationGroup = new CalculationGroup(); + // Call + using (var view = new StabilityPointStructuresScenariosView(calculationGroup, new StabilityPointStructuresFailureMechanism(), assessmentSection)) + { // Assert + Assert.IsInstanceOf, StabilityPointStructuresInput, StabilityPointStructuresScenarioRow, StabilityPointStructuresFailureMechanism>>(view); Assert.AreSame(calculationGroup, view.Data); } - } - [Test] - public void FailureMechanism_ValidFailureMechanismSet_ValidFailureMechanism() - { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - - // Call - view.FailureMechanism = failureMechanism; - - // Assert - Assert.AreSame(failureMechanism, view.FailureMechanism); - } + mocks.VerifyAll(); } [Test] - public void Data_WithFailureMechanism_UpdateScenarioControl() + public void Constructor_DataGridViewCorrectlyInitialized() { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.FailureMechanism = failureMechanism; + // Call + ShowStabilityPointStructuresScenariosView(new StabilityPointStructuresFailureMechanism()); - // Call - view.Data = failureMechanism.CalculationsGroup; - - // Assert - AssertDataGridView(failureMechanism, false, new[] - { - new[] - { - "", - "CalculationA" - }, - new[] - { - "", - "CalculationB" - } - }); - } + // Assert + var dataGridView = (DataGridView)new ControlTester("dataGridView").TheObject; + Assert.AreEqual(4, dataGridView.ColumnCount); + Assert.AreEqual("In oordeel", dataGridView.Columns[isRelevantColumnIndex].HeaderText); + Assert.AreEqual("Bijdrage aan\r\nscenario\r\n[%]", dataGridView.Columns[contributionColumnIndex].HeaderText); + Assert.AreEqual("Naam", dataGridView.Columns[nameColumnIndex].HeaderText); + Assert.AreEqual("Faalkans\r\n[1/jaar]", dataGridView.Columns[failureProbabilityColumnIndex].HeaderText); } [Test] - public void Data_SetToNullAfterGridViewShowsData_ClearsScenarioControl() + public void StabilityPointStructuresScenarioView_CalculationsWithAllDataSet_DataGridViewCorrectlyInitialized() { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.FailureMechanism = failureMechanism; - view.Data = failureMechanism.CalculationsGroup; + // Call + ShowFullyConfiguredStabilityPointStructuresScenariosView(); - // Call - view.Data = null; + var dataGridView = (DataGridView)new ControlTester("dataGridView").TheObject; - // Assert - AssertDataGridView(failureMechanism, true); - } - } + // Assert + DataGridViewRowCollection rows = dataGridView.Rows; + Assert.AreEqual(2, rows.Count); - [Test] - public void FailureMechanism_WithData_UpdateScenarioControl() - { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.Data = failureMechanism.CalculationsGroup; + DataGridViewCellCollection cells = rows[0].Cells; + Assert.AreEqual(4, cells.Count); + Assert.IsTrue(Convert.ToBoolean(cells[isRelevantColumnIndex].FormattedValue)); + Assert.AreEqual(new RoundedDouble(2, 100).ToString(), cells[contributionColumnIndex].FormattedValue); + Assert.AreEqual("Calculation 1", cells[nameColumnIndex].FormattedValue); + Assert.AreEqual("-", cells[failureProbabilityColumnIndex].FormattedValue); - // Call - view.FailureMechanism = failureMechanism; - - // Assert - AssertDataGridView(failureMechanism, false, new[] - { - new[] - { - "", - "CalculationA" - }, - new[] - { - "", - "CalculationB" - } - }); - } + cells = rows[1].Cells; + Assert.AreEqual(4, cells.Count); + Assert.IsTrue(Convert.ToBoolean(cells[isRelevantColumnIndex].FormattedValue)); + Assert.AreEqual(new RoundedDouble(2, 100).ToString(), cells[contributionColumnIndex].FormattedValue); + Assert.AreEqual("Calculation 2", cells[nameColumnIndex].FormattedValue); + Assert.AreEqual(ProbabilityFormattingHelper.Format(0.5), cells[failureProbabilityColumnIndex].FormattedValue); } - [Test] - public void FailureMechanism_WithoutData_ClearsScenarioControl() + private void ShowFullyConfiguredStabilityPointStructuresScenariosView() { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.Data = failureMechanism.CalculationsGroup; - view.FailureMechanism = failureMechanism; + var structure1 = new TestStabilityPointStructure(new Point2D(0.0, 0.0)); + var structure2 = new TestStabilityPointStructure(new Point2D(5.0, 0.0)); - // Call - view.FailureMechanism = null; + var failureMechanism = new StabilityPointStructuresFailureMechanism(); - // Assert - AssertDataGridView(failureMechanism, true); - } - } - - [Test] - public void NotifyFailureMechanism_SectionsUpdatedAfterFullInitialization_NewRowAddedToView() - { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) + FailureMechanismTestHelper.SetSections(failureMechanism, new[] { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.Data = failureMechanism.CalculationsGroup; - view.FailureMechanism = failureMechanism; - - List newSections = view.FailureMechanism.Sections.ToList(); - newSections.Add(new FailureMechanismSection("SectionC", new[] + new FailureMechanismSection("Section 1", new[] { - view.FailureMechanism.Sections.Last().EndPoint, - new Point2D(30, 30) - })); - - // Call - failureMechanism.NotifyObservers(); - - // Assert - AssertDataGridView(failureMechanism, false, new[] + new Point2D(0.0, 0.0), + new Point2D(5.0, 0.0) + }), + new FailureMechanismSection("Section 2", new[] { - new[] - { - "", - "CalculationA" - }, - new[] - { - "", - "CalculationB" - }, - new[] - { - "" - } - }); - } - } + new Point2D(5.0, 0.0), + new Point2D(10.0, 0.0) + }) + }); - [Test] - public void NotifyCalculation_CalculationChangedDikeProfile_CalculationMovedToOtherSectionResultOptions() - { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) + failureMechanism.CalculationsGroup.Children.AddRange(new[] { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.Data = failureMechanism.CalculationsGroup; - view.FailureMechanism = failureMechanism; - - var calculationA = (StructuresCalculation) failureMechanism.CalculationsGroup.Children[0]; - var calculationB = (StructuresCalculation) failureMechanism.CalculationsGroup.Children[1]; - - calculationA.InputParameters.Structure = calculationB.InputParameters.Structure; - - // Call - calculationA.NotifyObservers(); - - // Assert - AssertDataGridView(failureMechanism, false, new[] + new StructuresCalculationScenario { - new[] + Name = "Calculation 1", + InputParameters = { - "" - }, - new[] - { - "", - "CalculationA", - "CalculationB" + Structure = structure1 } - }); - } - } - - [Test] - public void NotifyCalculationGroup_CalculationAdded_CalculationAddedToSectionResultOptions() - { - // Setup - using (StabilityPointStructuresScenariosView view = ShowScenariosView()) - { - StabilityPointStructuresFailureMechanism failureMechanism = CreateCompleteFailureMechanism(); - view.Data = failureMechanism.CalculationsGroup; - view.FailureMechanism = failureMechanism; - - var calculationB = (StructuresCalculation) failureMechanism.CalculationsGroup.Children[1]; - var calculationC = new StructuresCalculation + }, + new StructuresCalculationScenario { - Name = "CalculationC", + Name = "Calculation 2", InputParameters = { - Structure = calculationB.InputParameters.Structure - } - }; - failureMechanism.CalculationsGroup.Children.Add(calculationC); - - calculationC.InputParameters.Structure = calculationC.InputParameters.Structure; - - // Call - failureMechanism.CalculationsGroup.NotifyObservers(); - - // Assert - AssertDataGridView(failureMechanism, false, new[] - { - new[] - { - "", - "CalculationA" + Structure = structure2 }, - new[] - { - "", - "CalculationB", - "CalculationC" - } - }); - } - } - - private void AssertDataGridView( - StabilityPointStructuresFailureMechanism failureMechanism, - bool shouldBeCleared, - string[][] expectedComboBoxItemTexts = null) - { - var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - int rowCount = dataGridView.RowCount; - - if (shouldBeCleared) - { - Assert.AreEqual(0, rowCount); - } - else - { - Assert.NotNull(expectedComboBoxItemTexts); - var dataGridViewColumn = (DataGridViewComboBoxColumn) dataGridView.Columns[1]; - - Assert.AreEqual(failureMechanism.SectionResults.Count(), rowCount); - Assert.AreEqual(failureMechanism.Calculations.Count(), dataGridViewColumn.Items.Count); - - for (var i = 0; i < rowCount; i++) - { - var cell = (DataGridViewComboBoxCell) dataGridView[1, i]; - IEnumerable> items = cell.Items.OfType>(); - Assert.AreEqual(expectedComboBoxItemTexts[i], items.Select(r => r.DisplayName)); + Output = new TestStructuresOutput(0.2) } - } - } - - private StabilityPointStructuresFailureMechanism CreateCompleteFailureMechanism() - { - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - var matchingPointA = new Point2D(0, 0); - var matchingPointB = new Point2D(20, 20); - var calculationA = new StructuresCalculation - { - Name = "CalculationA", - InputParameters = - { - Structure = CreateStructure(matchingPointA) - } - }; - var calculationB = new StructuresCalculation - { - Name = "CalculationB", - InputParameters = - { - Structure = CreateStructure(matchingPointB) - } - }; - var connectionPoint = new Point2D(10, 10); - var failureMechanismSectionA = new FailureMechanismSection("sectionA", new[] - { - matchingPointA, - connectionPoint }); - var failureMechanismSectionB = new FailureMechanismSection("sectionB", new[] - { - connectionPoint, - matchingPointB - }); - failureMechanism.CalculationsGroup.Children.Add(calculationA); - failureMechanism.CalculationsGroup.Children.Add(calculationB); - FailureMechanismTestHelper.SetSections(failureMechanism, new[] - { - failureMechanismSectionA, - failureMechanismSectionB - }); - - return failureMechanism; + ShowStabilityPointStructuresScenariosView(failureMechanism); } - private StabilityPointStructure CreateStructure(Point2D location) + private void ShowStabilityPointStructuresScenariosView(StabilityPointStructuresFailureMechanism failureMechanism) { - return new StabilityPointStructure(new StabilityPointStructure.ConstructionProperties - { - Id = "1", - Name = "", - Location = location - }); - } - - private StabilityPointStructuresScenariosView ShowScenariosView() - { - var scenariosView = new StabilityPointStructuresScenariosView(); + var scenariosView = new StabilityPointStructuresScenariosView(failureMechanism.CalculationsGroup, failureMechanism, new AssessmentSectionStub()); testForm.Controls.Add(scenariosView); testForm.Show(); - - return scenariosView; } } } \ No newline at end of file Index: Riskeer/StabilityPointStructures/test/Riskeer.StabilityPointStructures.Plugin.Test/ViewInfos/StabilityPointStructuresScenariosViewInfoTest.cs =================================================================== diff -u -r5806d848c8b646e450f092324efed255053413c7 -rc2eca5bce82fe3b24899de033edd326dc75376ee --- Riskeer/StabilityPointStructures/test/Riskeer.StabilityPointStructures.Plugin.Test/ViewInfos/StabilityPointStructuresScenariosViewInfoTest.cs (.../StabilityPointStructuresScenariosViewInfoTest.cs) (revision 5806d848c8b646e450f092324efed255053413c7) +++ Riskeer/StabilityPointStructures/test/Riskeer.StabilityPointStructures.Plugin.Test/ViewInfos/StabilityPointStructuresScenariosViewInfoTest.cs (.../StabilityPointStructuresScenariosViewInfoTest.cs) (revision c2eca5bce82fe3b24899de033edd326dc75376ee) @@ -21,6 +21,7 @@ using System.Drawing; using System.Linq; +using Core.Common.Controls.Views; using Core.Common.Gui.Plugin; using Core.Common.TestUtil; using NUnit.Framework; @@ -40,14 +41,12 @@ { private StabilityPointStructuresPlugin plugin; private ViewInfo info; - private MockRepository mocks; [SetUp] public void SetUp() { plugin = new StabilityPointStructuresPlugin(); info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(StabilityPointStructuresScenariosView)); - mocks = new MockRepository(); } [TearDown] @@ -78,6 +77,7 @@ public void GetViewData_Always_ReturnWrappedData() { // Setup + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); mocks.ReplayAll(); @@ -104,67 +104,21 @@ } [Test] - public void AfterCreate_Always_SetsSpecificPropertiesToView() + public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnFalse() { // Setup + var unrelatedFailureMechanism = new StabilityPointStructuresFailureMechanism(); + + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); + assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] + { + unrelatedFailureMechanism + }); mocks.ReplayAll(); - using (var view = new StabilityPointStructuresScenariosView()) + using (var view = new StabilityPointStructuresScenariosView(new CalculationGroup(), new StabilityPointStructuresFailureMechanism(), assessmentSection)) { - var group = new CalculationGroup(); - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - var context = new StabilityPointStructuresScenariosContext(group, failureMechanism, assessmentSection); - - // Call - info.AfterCreate(view, context); - - // Assert - Assert.AreSame(failureMechanism, view.FailureMechanism); - } - mocks.VerifyAll(); - } - - [Test] - public void CloseForData_AssessmentSectionRemovedWithoutFailureMechanism_ReturnFalse() - { - // Setup - using (var view = new StabilityPointStructuresScenariosView - { - Data = new CalculationGroup() - }) - { - var assessmentSection = mocks.Stub(); - assessmentSection.Stub(section => section.GetFailureMechanisms()).Return(new IFailureMechanism[0]); - mocks.ReplayAll(); - - // Call - bool closeForData = info.CloseForData(view, assessmentSection); - - // Assert - Assert.IsFalse(closeForData); - mocks.VerifyAll(); - } - } - - [Test] - public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnFalse() - { - // Setup - using (var view = new StabilityPointStructuresScenariosView - { - Data = new CalculationGroup() - }) - { - var unrelatedFailureMechanism = new StabilityPointStructuresFailureMechanism(); - - var assessmentSection = mocks.Stub(); - assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] - { - unrelatedFailureMechanism - }); - mocks.ReplayAll(); - // Precondition Assert.AreNotSame(view.Data, unrelatedFailureMechanism.CalculationsGroup); @@ -173,8 +127,9 @@ // Assert Assert.IsFalse(closeForData); - mocks.VerifyAll(); } + + mocks.VerifyAll(); } [Test] @@ -183,18 +138,16 @@ // Setup var relatedFailureMechanism = new StabilityPointStructuresFailureMechanism(); - using (var view = new StabilityPointStructuresScenariosView + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] { - Data = relatedFailureMechanism.CalculationsGroup - }) - { - var assessmentSection = mocks.Stub(); - assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] - { - relatedFailureMechanism - }); - mocks.ReplayAll(); + relatedFailureMechanism + }); + mocks.ReplayAll(); + using (var view = new StabilityPointStructuresScenariosView(relatedFailureMechanism.CalculationsGroup, relatedFailureMechanism, assessmentSection)) + { // Precondition Assert.AreSame(view.Data, relatedFailureMechanism.CalculationsGroup); @@ -203,190 +156,138 @@ // Assert Assert.IsTrue(closeForData); - mocks.VerifyAll(); } + + mocks.VerifyAll(); } [Test] public void CloseForData_ViewNotCorrespondingToRemovedFailureMechanism_ReturnFalse() { // Setup - using (var view = new StabilityPointStructuresScenariosView + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + using (var view = new StabilityPointStructuresScenariosView(new CalculationGroup(), new StabilityPointStructuresFailureMechanism(), assessmentSection)) { - Data = new CalculationGroup() - }) - { // Call bool closeForData = info.CloseForData(view, new StabilityPointStructuresFailureMechanism()); // Assert Assert.IsFalse(closeForData); } + + mocks.VerifyAll(); } [Test] public void CloseForData_ViewCorrespondingToRemovedFailureMechanism_ReturnTrue() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + var correspondingFailureMechanism = new StabilityPointStructuresFailureMechanism(); - using (var view = new StabilityPointStructuresScenariosView + using (var view = new StabilityPointStructuresScenariosView(correspondingFailureMechanism.CalculationsGroup, correspondingFailureMechanism, assessmentSection)) { - Data = correspondingFailureMechanism.CalculationsGroup - }) - { // Call bool closeForData = info.CloseForData(view, correspondingFailureMechanism); // Assert Assert.IsTrue(closeForData); } + + mocks.VerifyAll(); } [Test] - public void CloseForData_AssessmentSectionRemovedWithoutStabilityPointStructuresFailureMechanism_ReturnsFalse() + public void CloseForData_AssessmentSectionRemovedWithoutStabilityPointStructuresFailureMechanism_ReturnFalse() { // Setup + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new IFailureMechanism[0]); mocks.ReplayAll(); - var view = new StabilityPointStructuresScenariosView + using (var view = new StabilityPointStructuresScenariosView(new CalculationGroup(), new StabilityPointStructuresFailureMechanism(), assessmentSection)) { - Data = new CalculationGroup() - }; + // Call + bool closeForData = info.CloseForData(view, assessmentSection); - // Call - bool closeForData = info.CloseForData(view, assessmentSection); + // Assert + Assert.IsFalse(closeForData); + } - // Assert - Assert.IsFalse(closeForData); mocks.VerifyAll(); } [Test] - public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnsFalse() + public void CloseForData_ViewNotCorrespondingToRemovedFailureMechanismContext_ReturnFalse() { // Setup + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); - assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] - { - new StabilityPointStructuresFailureMechanism() - }); - mocks.ReplayAll(); - var view = new StabilityPointStructuresScenariosView - { - Data = new CalculationGroup() - }; - - // Call - bool closeForData = info.CloseForData(view, assessmentSection); - - // Assert - Assert.IsFalse(closeForData); - mocks.VerifyAll(); - } - - [Test] - public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue() - { - // Setup - var assessmentSection = mocks.Stub(); var failureMechanism = new StabilityPointStructuresFailureMechanism(); - assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] - { - failureMechanism - }); + var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(new StabilityPointStructuresFailureMechanism(), assessmentSection); - mocks.ReplayAll(); - - var view = new StabilityPointStructuresScenariosView + using (var view = new StabilityPointStructuresScenariosView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection)) { - Data = failureMechanism.CalculationsGroup - }; + // Call + bool closeForData = info.CloseForData(view, failureMechanismContext); - // Call - bool closeForData = info.CloseForData(view, assessmentSection); + // Assert + Assert.IsFalse(closeForData); + } - // Assert - Assert.IsTrue(closeForData); mocks.VerifyAll(); } [Test] - public void CloseForData_ViewNotCorrespondingToRemovedFailureMechanism_ReturnsFalse() + public void CloseForData_ViewCorrespondingToRemovedFailureMechanismContext_ReturnTrue() { // Setup - var view = new StabilityPointStructuresScenariosView(); - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - - view.Data = new CalculationGroup(); - - // Call - bool closeForData = info.CloseForData(view, failureMechanism); - - // Assert - Assert.IsFalse(closeForData); - } - - [Test] - public void CloseForData_ViewCorrespondingToRemovedFailureMechanism_ReturnsTrue() - { - // Setup - var view = new StabilityPointStructuresScenariosView(); - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - - view.Data = failureMechanism.CalculationsGroup; - - // Call - bool closeForData = info.CloseForData(view, failureMechanism); - - // Assert - Assert.IsTrue(closeForData); - } - - [Test] - public void CloseForData_ViewNotCorrespondingToRemovedFailureMechanismContext_ReturnsFalse() - { - // Setup + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - var view = new StabilityPointStructuresScenariosView(); var failureMechanism = new StabilityPointStructuresFailureMechanism(); - var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(new StabilityPointStructuresFailureMechanism(), assessmentSection); + var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); - view.Data = failureMechanism.CalculationsGroup; + using (var view = new StabilityPointStructuresScenariosView(failureMechanism.CalculationsGroup, failureMechanism, assessmentSection)) + { + // Call + bool closeForData = info.CloseForData(view, failureMechanismContext); - // Call - bool closeForData = info.CloseForData(view, failureMechanismContext); + // Assert + Assert.IsTrue(closeForData); + } - // Assert - Assert.IsFalse(closeForData); mocks.VerifyAll(); } [Test] - public void CloseForData_ViewCorrespondingToRemovedFailureMechanismContext_ReturnsTrue() + public void CreateInstance_WithContext_ReturnsStabilityPointStructuresScenariosView() { // Setup + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); - mocks.ReplayAll(); - var view = new StabilityPointStructuresScenariosView(); - var failureMechanism = new StabilityPointStructuresFailureMechanism(); - var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSection); + var group = new CalculationGroup(); + var context = new StabilityPointStructuresScenariosContext(group, new StabilityPointStructuresFailureMechanism(), assessmentSection); - view.Data = failureMechanism.CalculationsGroup; - // Call - bool closeForData = info.CloseForData(view, failureMechanismContext); + using (IView view = info.CreateInstance(context)) + { + // Assert + Assert.IsInstanceOf(view); + Assert.AreSame(group, view.Data); + } - // Assert - Assert.IsTrue(closeForData); mocks.VerifyAll(); } }