Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsScenariosView.cs =================================================================== diff -u -r1f76045f08612f7b8259c460771c7cdbdb5447a7 -r3aea1664d081533081c7ee4e879a7eeb6586721d --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsScenariosView.cs (.../GrassCoverErosionInwardsScenariosView.cs) (revision 1f76045f08612f7b8259c460771c7cdbdb5447a7) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/Views/GrassCoverErosionInwardsScenariosView.cs (.../GrassCoverErosionInwardsScenariosView.cs) (revision 3aea1664d081533081c7ee4e879a7eeb6586721d) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2019. All rights reserved. +// Copyright (C) Stichting Deltares 2019. All rights reserved. // // This file is part of Riskeer. // @@ -47,29 +47,53 @@ /// /// Creates a new instance of . /// - public GrassCoverErosionInwardsScenariosView() + /// The data to show in this view. + /// The + /// the belongs to. + /// Thrown when any parameter + /// is null. + public GrassCoverErosionInwardsScenariosView(CalculationGroup calculationGroup, GrassCoverErosionInwardsFailureMechanism failureMechanism) { + if (calculationGroup == null) + { + throw new ArgumentNullException(nameof(calculationGroup)); + } + + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + InitializeComponent(); - failureMechanismObserver = new Observer(UpdateDataGridViewDataSource); + data = calculationGroup; + this.failureMechanism = failureMechanism; + + failureMechanismObserver = new Observer(UpdateDataGridViewDataSource) + { + Observable = failureMechanism + }; // 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); + .OfType() + .Select(c => c.InputParameters))) + { + Observable = calculationGroup + }; + calculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, c => c.Children) + { + Observable = calculationGroup + }; } /// /// Gets or sets the failure mechanism. /// public GrassCoverErosionInwardsFailureMechanism FailureMechanism { - get - { - return failureMechanism; - } + get => failureMechanism; set { failureMechanism = value; @@ -80,10 +104,7 @@ public object Data { - get - { - return data; - } + get => data; set { data = value as CalculationGroup; @@ -128,7 +149,7 @@ ICalculation[] calculations = data.GetCalculations().ToArray(); IDictionary> calculationsPerSegment = - GrassCoverErosionInwardsHelper.CollectCalculationsPerSection(failureMechanism.Sections, calculations.Cast()); + GrassCoverErosionInwardsHelper.CollectCalculationsPerSection(failureMechanism.Sections, calculations.Cast()); List scenarioRows = failureMechanism.SectionResults.Select(sectionResult => new GrassCoverErosionInwardsScenarioRow(sectionResult)).ToList(); Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsScenariosViewTest.cs =================================================================== diff -u -rf1a99bd6f1bfda45d8b7b4dbb8d7b7e51fcc718f -r3aea1664d081533081c7ee4e879a7eeb6586721d --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsScenariosViewTest.cs (.../GrassCoverErosionInwardsScenariosViewTest.cs) (revision f1a99bd6f1bfda45d8b7b4dbb8d7b7e51fcc718f) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/Views/GrassCoverErosionInwardsScenariosViewTest.cs (.../GrassCoverErosionInwardsScenariosViewTest.cs) (revision 3aea1664d081533081c7ee4e879a7eeb6586721d) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections.Generic; using System.Drawing; using System.Linq; @@ -55,17 +56,20 @@ } [Test] - public void DefaultConstructor_DataGridViewCorrectlyInitialized() + public void Constructor_ExpectedValues() { + // Setup + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + // Call - using (GrassCoverErosionInwardsScenariosView view = ShowScenariosView()) + using (GrassCoverErosionInwardsScenariosView view = ShowScenariosView(failureMechanism)) { // Assert Assert.IsInstanceOf(view); Assert.IsInstanceOf(view); Assert.IsTrue(view.AutoScroll); - Assert.IsNull(view.Data); - Assert.IsNull(view.FailureMechanism); + Assert.AreSame(failureMechanism.CalculationsGroup, view.Data); + Assert.AreSame(failureMechanism, view.FailureMechanism); var scenarioSelectionControl = new ControlTester("scenarioSelectionControl").TheObject as ScenarioSelectionControl; @@ -75,6 +79,28 @@ } [Test] + public void Constructor_CalculationGroupNull_ThrowsArgumentNullException() + { + // Call + void Call() => new GrassCoverErosionInwardsScenariosView(null, new GrassCoverErosionInwardsFailureMechanism()); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("calculationGroup", exception.ParamName); + } + + [Test] + public void Constructor_FailureMechanismNull_ThrowsArgumentNullException() + { + // Call + void Call() => new GrassCoverErosionInwardsScenariosView(new CalculationGroup(), null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] public void Data_ValidDataSet_ValidData() { // Setup @@ -286,8 +312,8 @@ view.Data = failureMechanism.CalculationsGroup; view.FailureMechanism = failureMechanism; - var calculationB = (GrassCoverErosionInwardsCalculation) failureMechanism.CalculationsGroup.Children[1]; - var calculationC = new GrassCoverErosionInwardsCalculation + var calculationB = (GrassCoverErosionInwardsCalculationScenario) failureMechanism.CalculationsGroup.Children[1]; + var calculationC = new GrassCoverErosionInwardsCalculationScenario { Name = "CalculationC", InputParameters = @@ -354,15 +380,15 @@ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); var matchingPointA = new Point2D(0, 0); var matchingPointB = new Point2D(20, 20); - var calculationA = new GrassCoverErosionInwardsCalculation + var calculationA = new GrassCoverErosionInwardsCalculationScenario { Name = "CalculationA", InputParameters = { DikeProfile = DikeProfileTestFactory.CreateDikeProfile(matchingPointA) } }; - var calculationB = new GrassCoverErosionInwardsCalculation + var calculationB = new GrassCoverErosionInwardsCalculationScenario { Name = "CalculationB", InputParameters = @@ -395,7 +421,12 @@ private GrassCoverErosionInwardsScenariosView ShowScenariosView() { - var scenariosView = new GrassCoverErosionInwardsScenariosView(); + return ShowScenariosView(new GrassCoverErosionInwardsFailureMechanism()); + } + + private GrassCoverErosionInwardsScenariosView ShowScenariosView(GrassCoverErosionInwardsFailureMechanism failureMechanism) + { + var scenariosView = new GrassCoverErosionInwardsScenariosView(failureMechanism.CalculationsGroup, failureMechanism); testForm.Controls.Add(scenariosView); testForm.Show(); Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsScenariosViewIntegrationTest.cs =================================================================== diff -u -r8e3a27cd0c9f5e4ffcb6c5e8e29442a127c042b0 -r3aea1664d081533081c7ee4e879a7eeb6586721d --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsScenariosViewIntegrationTest.cs (.../GrassCoverErosionInwardsScenariosViewIntegrationTest.cs) (revision 8e3a27cd0c9f5e4ffcb6c5e8e29442a127c042b0) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsScenariosViewIntegrationTest.cs (.../GrassCoverErosionInwardsScenariosViewIntegrationTest.cs) (revision 3aea1664d081533081c7ee4e879a7eeb6586721d) @@ -57,11 +57,8 @@ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); DataImportHelper.ImportReferenceLine(assessmentSection); - var view = new GrassCoverErosionInwardsScenariosView - { - Data = assessmentSection.GrassCoverErosionInwards.CalculationsGroup, - FailureMechanism = assessmentSection.GrassCoverErosionInwards - }; + var view = new GrassCoverErosionInwardsScenariosView(assessmentSection.GrassCoverErosionInwards.CalculationsGroup, + assessmentSection.GrassCoverErosionInwards); form.Controls.Add(view); form.Show(); @@ -105,11 +102,8 @@ DataImportHelper.ImportFailureMechanismSections(assessmentSection, failureMechanism); CalculationGroup calculationsGroup = assessmentSection.GrassCoverErosionInwards.CalculationsGroup; - var view = new GrassCoverErosionInwardsScenariosView - { - Data = calculationsGroup, - FailureMechanism = assessmentSection.GrassCoverErosionInwards - }; + var view = new GrassCoverErosionInwardsScenariosView(assessmentSection.GrassCoverErosionInwards.CalculationsGroup, + assessmentSection.GrassCoverErosionInwards); form.Controls.Add(view); form.Show(); @@ -125,7 +119,7 @@ // Call foreach (DikeProfile profile in assessmentSection.GrassCoverErosionInwards.DikeProfiles) { - calculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation + calculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculationScenario { Name = NamingHelper.GetUniqueName(((CalculationGroup) view.Data).Children, profile.Name, c => c.Name), InputParameters = @@ -163,11 +157,8 @@ DataImportHelper.ImportFailureMechanismSections(assessmentSection, failureMechanism); CalculationGroup calculationsGroup = assessmentSection.GrassCoverErosionInwards.CalculationsGroup; - var view = new GrassCoverErosionInwardsScenariosView - { - Data = calculationsGroup, - FailureMechanism = assessmentSection.GrassCoverErosionInwards - }; + var view = new GrassCoverErosionInwardsScenariosView(assessmentSection.GrassCoverErosionInwards.CalculationsGroup, + assessmentSection.GrassCoverErosionInwards); form.Controls.Add(view); form.Show(); @@ -183,7 +174,7 @@ foreach (DikeProfile profile in assessmentSection.GrassCoverErosionInwards.DikeProfiles) { - calculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation + calculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculationScenario { Name = NamingHelper.GetUniqueName(calculationsGroup.Children, profile.Name, c => c.Name), InputParameters = @@ -196,9 +187,8 @@ calculationsGroup.NotifyObservers(); // Call - foreach (ICalculationBase calculationBase in calculationsGroup.Children) + foreach (GrassCoverErosionInwardsCalculationScenario calculation in calculationsGroup.Children.Cast()) { - var calculation = (GrassCoverErosionInwardsCalculation) calculationBase; calculation.Name += "_changed"; } @@ -227,11 +217,8 @@ IFailureMechanism failureMechanism = assessmentSection.GrassCoverErosionInwards; DataImportHelper.ImportFailureMechanismSections(assessmentSection, failureMechanism); - var view = new GrassCoverErosionInwardsScenariosView - { - Data = assessmentSection.GrassCoverErosionInwards.CalculationsGroup, - FailureMechanism = assessmentSection.GrassCoverErosionInwards - }; + var view = new GrassCoverErosionInwardsScenariosView(assessmentSection.GrassCoverErosionInwards.CalculationsGroup, + assessmentSection.GrassCoverErosionInwards); form.Controls.Add(view); form.Show(); @@ -246,7 +233,7 @@ foreach (DikeProfile profile in assessmentSection.GrassCoverErosionInwards.DikeProfiles) { - assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation + assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculationScenario { Name = NamingHelper.GetUniqueName(assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children, profile.Name + "Calculation", c => c.Name), InputParameters = @@ -258,8 +245,8 @@ // Call CalculationGroup calculationsGroup = assessmentSection.GrassCoverErosionInwards.CalculationsGroup; - ((GrassCoverErosionInwardsCalculation) calculationsGroup.Children[1]).InputParameters.DikeProfile = - ((GrassCoverErosionInwardsCalculation) calculationsGroup.Children[0]).InputParameters.DikeProfile; + ((GrassCoverErosionInwardsCalculationScenario) calculationsGroup.Children[1]).InputParameters.DikeProfile = + ((GrassCoverErosionInwardsCalculationScenario) calculationsGroup.Children[0]).InputParameters.DikeProfile; calculationsGroup.NotifyObservers(); // Assert Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/GrassCoverErosionInwardsScenariosViewInfoTest.cs =================================================================== diff -u -rf1a99bd6f1bfda45d8b7b4dbb8d7b7e51fcc718f -r3aea1664d081533081c7ee4e879a7eeb6586721d --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/GrassCoverErosionInwardsScenariosViewInfoTest.cs (.../GrassCoverErosionInwardsScenariosViewInfoTest.cs) (revision f1a99bd6f1bfda45d8b7b4dbb8d7b7e51fcc718f) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Plugin.Test/ViewInfos/GrassCoverErosionInwardsScenariosViewInfoTest.cs (.../GrassCoverErosionInwardsScenariosViewInfoTest.cs) (revision 3aea1664d081533081c7ee4e879a7eeb6586721d) @@ -40,14 +40,12 @@ { private GrassCoverErosionInwardsPlugin plugin; private ViewInfo info; - private MockRepository mocks; [SetUp] public void SetUp() { plugin = new GrassCoverErosionInwardsPlugin(); info = plugin.GetViewInfos().First(tni => tni.ViewType == typeof(GrassCoverErosionInwardsScenariosView)); - mocks = new MockRepository(); } [TearDown] @@ -100,45 +98,21 @@ } [Test] - public void CloseForData_AssessmentSectionRemovedWithoutFailureMechanism_ReturnFalse() - { - // Setup - using (var view = new GrassCoverErosionInwardsScenariosView - { - 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 GrassCoverErosionInwardsScenariosView + var unrelatedFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] { - Data = new CalculationGroup() - }) - { - var unrelatedFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + unrelatedFailureMechanism + }); + mocks.ReplayAll(); - var assessmentSection = mocks.Stub(); - assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] - { - unrelatedFailureMechanism - }); - mocks.ReplayAll(); - + using (var view = new GrassCoverErosionInwardsScenariosView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism())) + { // Precondition Assert.AreNotSame(view.Data, unrelatedFailureMechanism.CalculationsGroup); @@ -147,8 +121,9 @@ // Assert Assert.IsFalse(closeForData); - mocks.VerifyAll(); } + + mocks.VerifyAll(); } [Test] @@ -157,18 +132,16 @@ // Setup var relatedFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); - using (var view = new GrassCoverErosionInwardsScenariosView + 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 GrassCoverErosionInwardsScenariosView(relatedFailureMechanism.CalculationsGroup, relatedFailureMechanism)) + { // Precondition Assert.AreSame(view.Data, relatedFailureMechanism.CalculationsGroup); @@ -177,19 +150,17 @@ // Assert Assert.IsTrue(closeForData); - mocks.VerifyAll(); } + + mocks.VerifyAll(); } [Test] public void CloseForData_ViewNotCorrespondingToRemovedFailureMechanism_ReturnFalse() { // Setup - using (var view = new GrassCoverErosionInwardsScenariosView + using (var view = new GrassCoverErosionInwardsScenariosView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism())) { - Data = new CalculationGroup() - }) - { // Call bool closeForData = info.CloseForData(view, new GrassCoverErosionInwardsFailureMechanism()); @@ -203,11 +174,8 @@ { // Setup var correspondingFailureMechanism = new GrassCoverErosionInwardsFailureMechanism(); - using (var view = new GrassCoverErosionInwardsScenariosView + using (var view = new GrassCoverErosionInwardsScenariosView(correspondingFailureMechanism.CalculationsGroup, correspondingFailureMechanism)) { - Data = correspondingFailureMechanism.CalculationsGroup - }) - { // Call bool closeForData = info.CloseForData(view, correspondingFailureMechanism); @@ -217,158 +185,77 @@ } [Test] - public void CloseForData_AssessmentSectionRemovedWithoutGrassCoverErosionInwardsFailureMechanism_ReturnsFalse() + public void CloseForData_AssessmentSectionRemovedWithoutGrassCoverErosionInwardsFailureMechanism_ReturnFalse() { // Setup + var mocks = new MockRepository(); var assessmentSection = mocks.Stub(); assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new IFailureMechanism[0]); mocks.ReplayAll(); - var view = new GrassCoverErosionInwardsScenariosView + using (var view = new GrassCoverErosionInwardsScenariosView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism())) { - 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 GrassCoverErosionInwardsFailureMechanism() - }); - mocks.ReplayAll(); - var view = new GrassCoverErosionInwardsScenariosView - { - 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 GrassCoverErosionInwardsFailureMechanism(); - assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new[] - { - failureMechanism - }); + var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); - mocks.ReplayAll(); - - var view = new GrassCoverErosionInwardsScenariosView + using (var view = new GrassCoverErosionInwardsScenariosView(failureMechanism.CalculationsGroup, failureMechanism)) { - 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 GrassCoverErosionInwardsScenariosView(); - var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); - - 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 GrassCoverErosionInwardsScenariosView(); - var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); - - 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 GrassCoverErosionInwardsScenariosView(); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); - var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(new GrassCoverErosionInwardsFailureMechanism(), assessmentSection); - - view.Data = failureMechanism.CalculationsGroup; - - // Call - bool closeForData = info.CloseForData(view, failureMechanismContext); - - // Assert - Assert.IsFalse(closeForData); - mocks.VerifyAll(); - } - - [Test] - public void CloseForData_ViewCorrespondingToRemovedFailureMechanismContext_ReturnsTrue() - { - // Setup - var assessmentSection = mocks.Stub(); - - mocks.ReplayAll(); - - var view = new GrassCoverErosionInwardsScenariosView(); - var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); var failureMechanismContext = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection); - view.Data = failureMechanism.CalculationsGroup; + using (var view = new GrassCoverErosionInwardsScenariosView(failureMechanism.CalculationsGroup, failureMechanism)) + { + // Call + bool closeForData = info.CloseForData(view, failureMechanismContext); - // Call - bool closeForData = info.CloseForData(view, failureMechanismContext); + // Assert + Assert.IsTrue(closeForData); + } - // Assert - Assert.IsTrue(closeForData); mocks.VerifyAll(); } [Test] public void AfterCreate_Always_SetsSpecificPropertiesToView() { // Setup - using (var view = new GrassCoverErosionInwardsScenariosView()) + using (var view = new GrassCoverErosionInwardsScenariosView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism())) { var group = new CalculationGroup(); var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();