Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs =================================================================== diff -u -rce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b -rab394dc8ca5029652c0d8586281aa26ae70d2d9c --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision ce71b2d9a32bdfdf511ebfa82d5d26d2af0fdc6b) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Plugin/DuneErosionPlugin.cs (.../DuneErosionPlugin.cs) (revision ab394dc8ca5029652c0d8586281aa26ae70d2d9c) @@ -128,6 +128,7 @@ GetViewName = (view, context) => context.WrappedData.Name, Image = RingtoetsCommonFormsResources.CalculationIcon, CloseForData = CloseFailureMechanismViewForData, + CreateInstance = (context) => new DuneErosionFailureMechanismView(context.WrappedData, context.Parent), AdditionalDataCheck = context => context.WrappedData.IsRelevant }; @@ -393,12 +394,9 @@ var assessmentSection = data as IAssessmentSection; var failureMechanism = data as DuneErosionFailureMechanism; - var viewFailureMechanismContext = (DuneErosionFailureMechanismContext) view.Data; - DuneErosionFailureMechanism viewFailureMechanism = viewFailureMechanismContext.WrappedData; - return assessmentSection != null - ? ReferenceEquals(viewFailureMechanismContext.Parent, assessmentSection) - : ReferenceEquals(viewFailureMechanism, failureMechanism); + ? ReferenceEquals(view.AssessmentSection, assessmentSection) + : ReferenceEquals(view.FailureMechanism, failureMechanism); } #endregion Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/ViewInfos/DuneErosionFailureMechanismViewInfoTest.cs =================================================================== diff -u -r6f33b44599df032ecae3342b0aacd606a9e87c1f -rab394dc8ca5029652c0d8586281aa26ae70d2d9c --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/ViewInfos/DuneErosionFailureMechanismViewInfoTest.cs (.../DuneErosionFailureMechanismViewInfoTest.cs) (revision 6f33b44599df032ecae3342b0aacd606a9e87c1f) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/ViewInfos/DuneErosionFailureMechanismViewInfoTest.cs (.../DuneErosionFailureMechanismViewInfoTest.cs) (revision ab394dc8ca5029652c0d8586281aa26ae70d2d9c) @@ -20,6 +20,7 @@ // All rights reserved. using System.Linq; +using Core.Common.Controls.Views; using Core.Common.Gui.Plugin; using Core.Common.TestUtil; using NUnit.Framework; @@ -73,15 +74,12 @@ var failureMechanism = new DuneErosionFailureMechanism(); var failureMechanismContext = new DuneErosionFailureMechanismContext(failureMechanism, assessmentSection); - using (var view = new DuneErosionFailureMechanismView()) - { - // Call - string viewName = info.GetViewName(view, failureMechanismContext); + // Call + string viewName = info.GetViewName(null, failureMechanismContext); - // Assert - Assert.AreEqual(failureMechanism.Name, viewName); - mocks.VerifyAll(); - } + // Assert + Assert.AreEqual(failureMechanism.Name, viewName); + mocks.VerifyAll(); } [Test] @@ -93,19 +91,16 @@ mocks.ReplayAll(); var failureMechanism = new DuneErosionFailureMechanism(); - var failureMechanismContext = new DuneErosionFailureMechanismContext(failureMechanism, assessmentSection); - using (var view = new DuneErosionFailureMechanismView + using (var view = new DuneErosionFailureMechanismView(failureMechanism, assessmentSection)) { - Data = failureMechanismContext - }) - { // Call bool closeForData = info.CloseForData(view, otherAssessmentSection); // Assert Assert.IsFalse(closeForData); } + mocks.VerifyAll(); } @@ -114,15 +109,10 @@ { // Setup var assessmentSection = new AssessmentSectionStub(); - var failureMechanism = new DuneErosionFailureMechanism(); - var failureMechanismContext = new DuneErosionFailureMechanismContext(failureMechanism, assessmentSection); - using (var view = new DuneErosionFailureMechanismView + using (var view = new DuneErosionFailureMechanismView(failureMechanism, assessmentSection)) { - Data = failureMechanismContext - }) - { // Call bool closeForData = info.CloseForData(view, assessmentSection); @@ -136,19 +126,13 @@ { // Setup var assessmentSection = new AssessmentSectionStub(); - var failureMechanism = new DuneErosionFailureMechanism(); - var otherDuneErosionFailureMechanism = new DuneErosionFailureMechanism(); + var otherFailureMechanism = new DuneErosionFailureMechanism(); - var failureMechanismContext = new DuneErosionFailureMechanismContext(failureMechanism, assessmentSection); - - using (var view = new DuneErosionFailureMechanismView + using (var view = new DuneErosionFailureMechanismView(failureMechanism, assessmentSection)) { - Data = failureMechanismContext - }) - { // Call - bool closeForData = info.CloseForData(view, otherDuneErosionFailureMechanism); + bool closeForData = info.CloseForData(view, otherFailureMechanism); // Assert Assert.IsFalse(closeForData); @@ -160,15 +144,10 @@ { // Setup var assessmentSection = new AssessmentSectionStub(); - var failureMechanism = new DuneErosionFailureMechanism(); - var failureMechanismContext = new DuneErosionFailureMechanismContext(failureMechanism, assessmentSection); - using (var view = new DuneErosionFailureMechanismView + using (var view = new DuneErosionFailureMechanismView(failureMechanism, assessmentSection)) { - Data = failureMechanismContext - }) - { // Call bool closeForData = info.CloseForData(view, failureMechanism); @@ -200,5 +179,25 @@ Assert.AreEqual(isRelevant, result); mocks.VerifyAll(); } + + [Test] + public void CreateInstance_WithContext_ReturnDuneFailureMechanismView() + { + // Setup + var assessmentSection = new AssessmentSectionStub(); + var failureMechanism = new DuneErosionFailureMechanism(); + + var context = new DuneErosionFailureMechanismContext(failureMechanism, assessmentSection); + + // Call + IView view = info.CreateInstance(context); + + // Assert + Assert.IsInstanceOf(view); + + var failureMechanismView = (DuneErosionFailureMechanismView) view; + Assert.AreSame(assessmentSection, failureMechanismView.AssessmentSection); + Assert.AreSame(failureMechanism, failureMechanismView.FailureMechanism); + } } } \ No newline at end of file