Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputView.Designer.cs
===================================================================
diff -u -r9b0ddd4e6dcb61bdc6482dad639bdbb024f7bf0c -r3afbd3fd6c74d447b520eb1182e677db4816ac68
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputView.Designer.cs (.../MacroStabilityInwardsOutputView.Designer.cs) (revision 9b0ddd4e6dcb61bdc6482dad639bdbb024f7bf0c)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputView.Designer.cs (.../MacroStabilityInwardsOutputView.Designer.cs) (revision 3afbd3fd6c74d447b520eb1182e677db4816ac68)
@@ -30,19 +30,6 @@
///
private System.ComponentModel.IContainer components = null;
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
#region Component Designer generated code
///
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputView.cs
===================================================================
diff -u -rd0dfbe43e89d97fb516d6c8a5cff1c35237ce715 -r3afbd3fd6c74d447b520eb1182e677db4816ac68
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputView.cs (.../MacroStabilityInwardsOutputView.cs) (revision d0dfbe43e89d97fb516d6c8a5cff1c35237ce715)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsOutputView.cs (.../MacroStabilityInwardsOutputView.cs) (revision 3afbd3fd6c74d447b520eb1182e677db4816ac68)
@@ -20,7 +20,9 @@
// All rights reserved.
using System.Windows.Forms;
+using Core.Common.Base;
using Core.Common.Controls.Views;
+using Ringtoets.MacroStabilityInwards.Data;
namespace Ringtoets.MacroStabilityInwards.Forms.Views
{
@@ -29,14 +31,50 @@
///
public partial class MacroStabilityInwardsOutputView : UserControl, IView
{
+ private readonly Observer outputObserver;
+
+ private MacroStabilityInwardsCalculationScenario data;
+
///
/// Creates a new instance of .
///
public MacroStabilityInwardsOutputView()
{
InitializeComponent();
+
+ outputObserver = new Observer(UpdateChartData);
}
- public object Data { get; set; }
+ public object Data
+ {
+ get
+ {
+ return data;
+ }
+ set
+ {
+ data = value as MacroStabilityInwardsCalculationScenario;
+
+ outputObserver.Observable = data;
+
+ UpdateChartData();
+ }
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ outputObserver.Dispose();
+
+ if (disposing)
+ {
+ components?.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ private void UpdateChartData()
+ {
+ macroStabilityInwardsOutputChartControl.Data = data != null && data.HasOutput ? data : null;
+ }
}
}
\ No newline at end of file
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsOutputViewTest.cs
===================================================================
diff -u -r9b0ddd4e6dcb61bdc6482dad639bdbb024f7bf0c -r3afbd3fd6c74d447b520eb1182e677db4816ac68
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsOutputViewTest.cs (.../MacroStabilityInwardsOutputViewTest.cs) (revision 9b0ddd4e6dcb61bdc6482dad639bdbb024f7bf0c)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsOutputViewTest.cs (.../MacroStabilityInwardsOutputViewTest.cs) (revision 3afbd3fd6c74d447b520eb1182e677db4816ac68)
@@ -19,9 +19,13 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System.Linq;
using System.Windows.Forms;
using Core.Common.Controls.Views;
using NUnit.Framework;
+using Ringtoets.Common.Forms.TestUtil;
+using Ringtoets.MacroStabilityInwards.Data;
+using Ringtoets.MacroStabilityInwards.Data.TestUtil;
using Ringtoets.MacroStabilityInwards.Forms.Views;
namespace Ringtoets.MacroStabilityInwards.Forms.Test.Views
@@ -47,5 +51,176 @@
Assert.IsInstanceOf(splitContainer.Panel1.Controls[0]);
}
}
+
+ [Test]
+ public void Data_MacroStabilityInwardsCalculationScenario_DataSet()
+ {
+ // Setup
+ using (var view = new MacroStabilityInwardsOutputView())
+ {
+ var calculation = new MacroStabilityInwardsCalculationScenario();
+
+ // Call
+ view.Data = calculation;
+
+ // Assert
+ Assert.AreSame(calculation, view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_OtherThanMacroStabilityInwardsCalculationScenario_DataNull()
+ {
+ // Setup
+ using (var view = new MacroStabilityInwardsOutputView())
+ {
+ // Call
+ view.Data = new object();
+
+ // Assert
+ Assert.IsNull(view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_MacroStabilityInwardsCalculationScenarioWithOutput_DataSetToChartControl()
+ {
+ // Setup
+ using (var form = new Form())
+ using (var view = new MacroStabilityInwardsOutputView())
+ {
+ form.Controls.Add(view);
+ form.Show();
+
+ MacroStabilityInwardsOutputChartControl chartControl = ControlTestHelper.GetControls(form, "macroStabilityInwardsOutputChartControl").Single();
+
+ var calculation = new MacroStabilityInwardsCalculationScenario
+ {
+ Output = new TestMacroStabilityInwardsOutput()
+ };
+
+ // Call
+ view.Data = calculation;
+
+ // Assert
+ Assert.AreSame(calculation, view.Data);
+ Assert.AreSame(calculation, chartControl.Data);
+ }
+ }
+
+ [Test]
+ public void Data_MacroStabilityInwardsCalculationScenarioWithoutOutput_ChartControlDataNull()
+ {
+ // Setup
+ using (var form = new Form())
+ using (var view = new MacroStabilityInwardsOutputView())
+ {
+ form.Controls.Add(view);
+ form.Show();
+
+ MacroStabilityInwardsOutputChartControl chartControl = ControlTestHelper.GetControls(form, "macroStabilityInwardsOutputChartControl").Single();
+
+ var calculation = new MacroStabilityInwardsCalculationScenario();
+
+ // Call
+ view.Data = calculation;
+
+ // Assert
+ Assert.AreSame(calculation, view.Data);
+ Assert.IsNull(chartControl.Data);
+ }
+ }
+
+ [Test]
+ public void Data_SetToNull_ChartControlDataNull()
+ {
+ // Setup
+ var calculation = new MacroStabilityInwardsCalculationScenario
+ {
+ Output = new TestMacroStabilityInwardsOutput()
+ };
+
+ using (var form = new Form())
+ using (var view = new MacroStabilityInwardsOutputView
+ {
+ Data = calculation
+ })
+ {
+ form.Controls.Add(view);
+ form.Show();
+
+ MacroStabilityInwardsOutputChartControl chartControl = ControlTestHelper.GetControls(form, "macroStabilityInwardsOutputChartControl").Single();
+
+ // Precondition
+ Assert.AreSame(calculation, view.Data);
+ Assert.AreSame(calculation, chartControl.Data);
+
+ // Call
+ view.Data = null;
+
+ // Assert
+ Assert.IsNull(view.Data);
+ Assert.IsNull(chartControl.Data);
+ }
+ }
+
+ [Test]
+ public void GivenCalculationWithOutput_WhenOutputCleared_ThenChartControlDataSetToNull()
+ {
+ // Given
+ using (var form = new Form())
+ using (var view = new MacroStabilityInwardsOutputView())
+ {
+ form.Controls.Add(view);
+ form.Show();
+
+ MacroStabilityInwardsOutputChartControl chartControl = ControlTestHelper.GetControls(form, "macroStabilityInwardsOutputChartControl").Single();
+
+ var calculation = new MacroStabilityInwardsCalculationScenario
+ {
+ Output = new TestMacroStabilityInwardsOutput()
+ };
+
+ view.Data = calculation;
+
+ // Precondition
+ Assert.AreSame(calculation, chartControl.Data);
+
+ // When
+ calculation.ClearOutput();
+ calculation.NotifyObservers();
+
+ // Then
+ Assert.IsNull(chartControl.Data);
+ }
+ }
+
+ [Test]
+ public void GivenCalculationWithoutOutput_WhenOutputSet_ThenChartControlDataSetToCalculation()
+ {
+ // Given
+ using (var form = new Form())
+ using (var view = new MacroStabilityInwardsOutputView())
+ {
+ form.Controls.Add(view);
+ form.Show();
+
+ MacroStabilityInwardsOutputChartControl chartControl = ControlTestHelper.GetControls(form, "macroStabilityInwardsOutputChartControl").Single();
+
+ var calculation = new MacroStabilityInwardsCalculationScenario();
+
+ view.Data = calculation;
+
+ // Precondition
+ Assert.IsNull(chartControl.Data);
+
+ // When
+ calculation.Output = new TestMacroStabilityInwardsOutput();
+ calculation.NotifyObservers();
+
+ // Then
+ Assert.AreSame(calculation, chartControl.Data);
+ }
+ }
}
}
\ No newline at end of file