Index: Core/Components/src/Core.Components.Charting.Forms/IChartControl.cs
===================================================================
diff -u -r0fdde49cfbdc5a411fac387d6a99484f05112700 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/src/Core.Components.Charting.Forms/IChartControl.cs (.../IChartControl.cs) (revision 0fdde49cfbdc5a411fac387d6a99484f05112700)
+++ Core/Components/src/Core.Components.Charting.Forms/IChartControl.cs (.../IChartControl.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -41,7 +41,7 @@
///
/// Gets or sets the data to show in the .
///
- ChartData Data { get; set; }
+ ChartDataCollection Data { get; }
///
/// Gets or sets the title of the chart.
Index: Core/Components/src/Core.Components.Charting/Data/ChartData.cs
===================================================================
diff -u -r1dd7affebae1187cb96778e85d021f7dc5ac9e50 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/src/Core.Components.Charting/Data/ChartData.cs (.../ChartData.cs) (revision 1dd7affebae1187cb96778e85d021f7dc5ac9e50)
+++ Core/Components/src/Core.Components.Charting/Data/ChartData.cs (.../ChartData.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -55,7 +55,7 @@
{
if (string.IsNullOrWhiteSpace(value))
{
- throw new ArgumentException("A name must be set to map data");
+ throw new ArgumentException("A name must be set to chart data");
}
name = value;
}
Index: Core/Components/src/Core.Components.Charting/Data/ChartDataCollection.cs
===================================================================
diff -u -r1dd7affebae1187cb96778e85d021f7dc5ac9e50 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/src/Core.Components.Charting/Data/ChartDataCollection.cs (.../ChartDataCollection.cs) (revision 1dd7affebae1187cb96778e85d021f7dc5ac9e50)
+++ Core/Components/src/Core.Components.Charting/Data/ChartDataCollection.cs (.../ChartDataCollection.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -50,5 +50,56 @@
/// Gets the list of of the .
///
public IList List { get; private set; }
+
+ ///
+ /// Adds an element to the list of .
+ ///
+ /// The element to add to the list.
+ /// Thrown when is null.
+ public void Add(ChartData elementToAdd)
+ {
+ if (elementToAdd == null)
+ {
+ throw new ArgumentNullException("elementToAdd", "An element cannot be null when adding it to the collection.");
+ }
+ List.Add(elementToAdd);
+ }
+
+ ///
+ /// Replaces an element in the list of .
+ ///
+ /// The element to replace.
+ /// The element to replace with.
+ /// Thrown when or
+ /// is null.
+ public void Replace(ChartData oldElement, ChartData newElement)
+ {
+ if (newElement == null)
+ {
+ throw new ArgumentNullException("newElement", "An element cannot be replaced with null. Use Remove instead.");
+ }
+
+ if (oldElement == null)
+ {
+ throw new ArgumentNullException("oldElement", "A null element cannot be replaced. User Add instead.");
+ }
+
+ for (var i = 0; i < List.Count; i++)
+ {
+ if (List[i].Equals(oldElement))
+ {
+ List[i] = newElement;
+ }
+ }
+ }
+
+ ///
+ /// Removes the given element from the list of .
+ ///
+ /// The element to remove.
+ public void Remove(ChartData elementToRemove)
+ {
+ List.Remove(elementToRemove);
+ }
}
}
\ No newline at end of file
Index: Core/Components/src/Core.Components.OxyPlot.Forms/ChartControl.cs
===================================================================
diff -u -r0fdde49cfbdc5a411fac387d6a99484f05112700 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/src/Core.Components.OxyPlot.Forms/ChartControl.cs (.../ChartControl.cs) (revision 0fdde49cfbdc5a411fac387d6a99484f05112700)
+++ Core/Components/src/Core.Components.OxyPlot.Forms/ChartControl.cs (.../ChartControl.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -19,6 +19,7 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
@@ -37,8 +38,6 @@
{
private readonly ChartSeriesFactory seriesFactory = new ChartSeriesFactory();
- private ChartData data;
-
private LinearPlotView view;
private DynamicPlotController controller;
@@ -49,28 +48,11 @@
{
InitializePlotView();
MinimumSize = new Size(50, 75);
- }
- ///
- /// Attaches the to the currently set , if there is any.
- ///
- private void AttachToData()
- {
- if (data != null)
- {
- data.Attach(this);
- }
- }
+ Data = new ChartDataCollection(new List(), "Root");
+ Data.Attach(this);
- ///
- /// Detaches the to the currently set , if there is any.
- ///
- private void DetachFromData()
- {
- if (data != null)
- {
- data.Detach(this);
- }
+ DrawSeries();
}
///
@@ -90,9 +72,9 @@
private void DrawSeries()
{
view.Model.Series.Clear();
- if (data != null)
+ if (Data != null)
{
- foreach (var series in seriesFactory.Create(data))
+ foreach (var series in seriesFactory.Create(Data))
{
view.Model.Series.Add(series);
}
@@ -119,20 +101,7 @@
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
- public ChartData Data
- {
- get
- {
- return data;
- }
- set
- {
- DetachFromData();
- data = value;
- AttachToData();
- DrawSeries();
- }
- }
+ public ChartDataCollection Data { get; set; }
public string ChartTitle
{
Index: Core/Components/test/Core.Components.Charting.Test/Data/ChartAreaDataTest.cs
===================================================================
diff -u -r0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.Charting.Test/Data/ChartAreaDataTest.cs (.../ChartAreaDataTest.cs) (revision 0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21)
+++ Core/Components/test/Core.Components.Charting.Test/Data/ChartAreaDataTest.cs (.../ChartAreaDataTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -53,7 +53,7 @@
TestDelegate test = () => new ChartAreaData(points, invalidName);
// Assert
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to map data");
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to chart data");
}
[Test]
Index: Core/Components/test/Core.Components.Charting.Test/Data/ChartDataCollectionTest.cs
===================================================================
diff -u -r0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.Charting.Test/Data/ChartDataCollectionTest.cs (.../ChartDataCollectionTest.cs) (revision 0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21)
+++ Core/Components/test/Core.Components.Charting.Test/Data/ChartDataCollectionTest.cs (.../ChartDataCollectionTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -53,7 +53,7 @@
TestDelegate test = () => new ChartDataCollection(list, invalidName);
// Assert
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to map data");
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to chart data");
}
[Test]
@@ -69,5 +69,183 @@
Assert.IsInstanceOf(collection);
Assert.AreSame(list, collection.List);
}
+
+ [Test]
+ public void Constructor_WithName_SetsName()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var name = "Some name";
+
+ // Call
+ var data = new ChartDataCollection(list, name);
+
+ // Assert
+ Assert.AreEqual(name, data.Name);
+ }
+
+ [Test]
+ public void Add_NotNull_AddsElementToCollection()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var objectToAdd = new ChartLineData(Enumerable.Empty>(), "test");
+
+ // Call
+ data.Add(objectToAdd);
+
+ // Assert
+ Assert.AreEqual(1, data.List.Count);
+ Assert.AreSame(objectToAdd, data.List.First());
+ }
+
+ [Test]
+ public void Add_Null_ThrowsArgumentNullException()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+
+ // Call
+ TestDelegate call = () => data.Add(null);
+
+ // Assert
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "An element cannot be null when adding it to the collection.");
+ }
+
+ [Test]
+ public void Replace_NotNull_ReplacesElementInCollection()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var oldDataElement = new ChartLineData(Enumerable.Empty>(), "test");
+ var newDataElement = new ChartPointData(Enumerable.Empty>(), "another test");
+
+ data.Add(oldDataElement);
+
+ // Precondition
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+
+ // Call
+ data.Replace(oldDataElement, newDataElement);
+
+ // Assert
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+ }
+
+ [Test]
+ public void Replace_NewElementNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var oldDataElement = new ChartLineData(Enumerable.Empty>(), "test");
+
+ data.Add(oldDataElement);
+
+ // Precondition
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+
+ // Call
+ TestDelegate test = () => data.Replace(oldDataElement, null);
+
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "An element cannot be replaced with null. Use Remove instead.");
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+ }
+
+ [Test]
+ public void Replace_OldElementNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var dataElement = new ChartLineData(Enumerable.Empty>(), "test");
+ var newDataElement = new ChartPointData(Enumerable.Empty>(), "another test");
+
+ data.Add(dataElement);
+
+ // Precondition
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+
+ // Call
+ TestDelegate test = () => data.Replace(null, newDataElement);
+
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A null element cannot be replaced. User Add instead.");
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+ }
+
+ [Test]
+ public void Remove_ExistingElement_RemovesElement()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var dataElement = new ChartLineData(Enumerable.Empty>(), "test");
+
+ data.Add(dataElement);
+
+ // Precondition
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+
+ // Call
+ data.Remove(dataElement);
+
+ // Assert
+ CollectionAssert.IsEmpty(data.List);
+ }
+
+ [Test]
+ public void Remove_Null_DoesNotRemove()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var dataElement = new ChartLineData(Enumerable.Empty>(), "test");
+
+ data.Add(dataElement);
+
+ // Precondition
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+ var listBeforeRemove = data.List;
+
+ // Call
+ data.Remove(null);
+
+ // Assert
+ CollectionAssert.AreEqual(listBeforeRemove, data.List);
+ }
+
+ [Test]
+ public void Remove_NotExistingElement_DoesNotRemove()
+ {
+ // Setup
+ var list = Enumerable.Empty().ToList();
+ var data = new ChartDataCollection(list, "test");
+ var dataElement = new ChartLineData(Enumerable.Empty>(), "test");
+ var otherDataElement = new ChartPointData(Enumerable.Empty>(), "another test");
+
+ data.Add(dataElement);
+
+ // Precondition
+ Assert.AreEqual(1, data.List.Count);
+ Assert.IsInstanceOf(data.List.First());
+ var listBeforeRemove = data.List;
+
+ // Call
+ data.Remove(otherDataElement);
+
+ // Assert
+ CollectionAssert.AreEqual(listBeforeRemove, data.List);
+ }
}
}
\ No newline at end of file
Index: Core/Components/test/Core.Components.Charting.Test/Data/ChartDataTest.cs
===================================================================
diff -u -r0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.Charting.Test/Data/ChartDataTest.cs (.../ChartDataTest.cs) (revision 0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21)
+++ Core/Components/test/Core.Components.Charting.Test/Data/ChartDataTest.cs (.../ChartDataTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -40,7 +40,7 @@
TestDelegate call = () => new TestChartData(invalidName);
// Assert
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "A name must be set to map data");
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "A name must be set to chart data");
}
[Test]
Index: Core/Components/test/Core.Components.Charting.Test/Data/ChartLineDataTest.cs
===================================================================
diff -u -r0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.Charting.Test/Data/ChartLineDataTest.cs (.../ChartLineDataTest.cs) (revision 0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21)
+++ Core/Components/test/Core.Components.Charting.Test/Data/ChartLineDataTest.cs (.../ChartLineDataTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -54,7 +54,7 @@
TestDelegate test = () => new ChartLineData(points, invalidName);
// Assert
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to map data");
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to chart data");
}
[Test]
Index: Core/Components/test/Core.Components.Charting.Test/Data/ChartPointDataTest.cs
===================================================================
diff -u -r0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.Charting.Test/Data/ChartPointDataTest.cs (.../ChartPointDataTest.cs) (revision 0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21)
+++ Core/Components/test/Core.Components.Charting.Test/Data/ChartPointDataTest.cs (.../ChartPointDataTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -53,7 +53,7 @@
TestDelegate test = () => new ChartPointData(points, invalidName);
// Assert
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to map data");
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to chart data");
}
[Test]
Index: Core/Components/test/Core.Components.Charting.Test/Data/PointBasedChartDataTest.cs
===================================================================
diff -u -r0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.Charting.Test/Data/PointBasedChartDataTest.cs (.../PointBasedChartDataTest.cs) (revision 0b76c9841bdeef5c3b9fa1ba0d6cb98a63b90c21)
+++ Core/Components/test/Core.Components.Charting.Test/Data/PointBasedChartDataTest.cs (.../PointBasedChartDataTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -58,7 +58,7 @@
TestDelegate test = () => new TestPointBasedChartData(points, invalidName);
// Assert
- TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to map data");
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "A name must be set to chart data");
}
[Test]
Index: Core/Components/test/Core.Components.OxyPlot.Forms.Test/ChartControlTest.cs
===================================================================
diff -u -r0fdde49cfbdc5a411fac387d6a99484f05112700 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Components/test/Core.Components.OxyPlot.Forms.Test/ChartControlTest.cs (.../ChartControlTest.cs) (revision 0fdde49cfbdc5a411fac387d6a99484f05112700)
+++ Core/Components/test/Core.Components.OxyPlot.Forms.Test/ChartControlTest.cs (.../ChartControlTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -20,13 +20,10 @@
// All rights reserved.
using System;
-using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
-using Core.Common.Base;
using Core.Common.Utils.Reflection;
using Core.Components.Charting.Data;
-using Core.Components.Charting.TestUtil;
using NUnit.Framework;
using OxyPlot.WindowsForms;
@@ -39,125 +36,51 @@
public void DefaultConstructor_PropertiesSet()
{
// Call
- var chart = new ChartControl();
-
- // Assert
- Assert.IsInstanceOf(chart);
- Assert.AreEqual(75, chart.MinimumSize.Height);
- Assert.AreEqual(50, chart.MinimumSize.Width);
- Assert.IsNull(chart.Data);
- Assert.IsTrue(chart.IsPanningEnabled);
- Assert.IsFalse(chart.IsRectangleZoomingEnabled);
- }
-
- [Test]
- public void Data_NotKnownChartData_ThrowsNotSupportedException()
- {
- // Setup
- var chart = new ChartControl();
- var testData = new TestChartData();
-
- // Call
- TestDelegate test = () => chart.Data = testData;
-
- // Assert
- Assert.Throws(test);
- }
-
- [Test]
- public void Data_Null_ReturnsNull()
- {
- // Setup
- var chart = new ChartControl();
-
- // Call
- chart.Data = null;
-
- // Assert
- Assert.IsNull(chart.Data);
- }
-
- [Test]
- public void Data_KnownChartData_ChartControlAttachedSeriesAdded()
- {
- // Setup
- var chart = new ChartControl();
- var testData = new ChartLineData(Enumerable.Empty>(), "test data");
- var observers = TypeUtils.GetField>(testData, "observers");
- var view = TypeUtils.GetField(chart, "view");
-
- // Call
- chart.Data = testData;
-
- // Assert
- CollectionAssert.AreEqual(new[]
+ using (var chart = new ChartControl())
{
- chart
- }, observers);
- Assert.AreEqual(1, view.Model.Series.Count);
+ // Assert
+ Assert.IsInstanceOf(chart);
+ Assert.AreEqual(75, chart.MinimumSize.Height);
+ Assert.AreEqual(50, chart.MinimumSize.Width);
+ Assert.IsNotNull(chart.Data);
+ CollectionAssert.IsEmpty(chart.Data.List);
+ Assert.IsTrue(chart.IsPanningEnabled);
+ Assert.IsFalse(chart.IsRectangleZoomingEnabled);
+ }
}
[Test]
- public void Data_NewDataSet_ChartControlDetachedFromOldAttachedToNewSeriesUpdated()
+ public void Data_NotNull_ReturnsData()
{
// Setup
- var chart = new ChartControl();
- var testDataOld = new ChartLineData(Enumerable.Empty>(), "test data");
- var testDataNew = new ChartLineData(Enumerable.Empty>(), "test data");
- var observersOld = TypeUtils.GetField>(testDataOld, "observers");
- var observersNew = TypeUtils.GetField>(testDataNew, "observers");
- var view = TypeUtils.GetField(chart, "view");
-
- // Call
- chart.Data = testDataOld;
- chart.Data = testDataNew;
-
- // Assert
- CollectionAssert.IsEmpty(observersOld);
- CollectionAssert.AreEqual(new[]
+ using (var chart = new ChartControl())
{
- chart
- }, observersNew);
- Assert.AreEqual(1, view.Model.Series.Count);
- }
+ var testData = new ChartPointData(Enumerable.Empty>(), "test data");
- [Test]
- public void Data_DataSetNewValueIsNull_ChartControlDetachedSeriesCleared()
- {
- // Setup
- var chart = new ChartControl();
- var testData = new ChartLineData(Enumerable.Empty>(), "test data");
- var observers = TypeUtils.GetField>(testData, "observers");
- var view = TypeUtils.GetField(chart, "view");
+ // Call
+ chart.Data.Add(testData);
- chart.Data = testData;
-
- // Precondition
- Assert.AreEqual(1, view.Model.Series.Count);
-
- // Call
- chart.Data = null;
-
- // Assert
- CollectionAssert.IsEmpty(observers);
- CollectionAssert.IsEmpty(view.Model.Series);
+ // Assert
+ Assert.AreSame(testData, chart.Data.List.First());
+ }
}
[Test]
public void TogglePanning_Always_PanningEnabled()
{
// Setup
- var chart = new ChartControl();
+ using (var chart = new ChartControl())
+ {
+ // Precondition
+ Assert.IsTrue(chart.IsPanningEnabled);
- // Precondition
- Assert.IsTrue(chart.IsPanningEnabled);
+ // Call
+ chart.TogglePanning();
- // Call
- chart.TogglePanning();
-
- // Assert
- Assert.IsTrue(chart.IsPanningEnabled);
- Assert.IsFalse(chart.IsRectangleZoomingEnabled);
+ // Assert
+ Assert.IsTrue(chart.IsPanningEnabled);
+ Assert.IsFalse(chart.IsRectangleZoomingEnabled);
+ }
}
[Test]
@@ -166,74 +89,81 @@
public void ToggleRectangleZooming_Always_ChangesState(bool isRectangleZooming)
{
// Setup
- var chart = new ChartControl();
- if (isRectangleZooming)
+ using (var chart = new ChartControl())
{
- chart.ToggleRectangleZooming();
- }
+ if (isRectangleZooming)
+ {
+ chart.ToggleRectangleZooming();
+ }
- // Precondition
- Assert.AreEqual(isRectangleZooming, chart.IsRectangleZoomingEnabled);
- Assert.AreEqual(!isRectangleZooming, chart.IsPanningEnabled);
+ // Precondition
+ Assert.AreEqual(isRectangleZooming, chart.IsRectangleZoomingEnabled);
+ Assert.AreEqual(!isRectangleZooming, chart.IsPanningEnabled);
- // Call
- chart.ToggleRectangleZooming();
+ // Call
+ chart.ToggleRectangleZooming();
- // Assert
- Assert.IsTrue(chart.IsRectangleZoomingEnabled);
+ // Assert
+ Assert.IsTrue(chart.IsRectangleZoomingEnabled);
+ }
}
[Test]
public void ZoomToAll_ChartInForm_ViewInvalidatedSeriesSame()
{
// Setup
- var form = new Form();
- var chart = new ChartControl();
- var testData = new ChartLineData(Enumerable.Empty>(), "test data");
- var view = TypeUtils.GetField(chart, "view");
- var invalidated = 0;
+ using (var form = new Form())
+ {
+ var chart = new ChartControl();
+ var testData = new ChartLineData(Enumerable.Empty>(), "test data");
+ var view = TypeUtils.GetField(chart, "view");
+ var invalidated = 0;
- chart.Data = testData;
- var series = view.Model.Series.ToList();
+ chart.Data.Add(testData);
+ var series = view.Model.Series.ToList();
- form.Controls.Add(chart);
- view.Invalidated += (sender, args) => invalidated++;
+ form.Controls.Add(chart);
+ view.Invalidated += (sender, args) => invalidated++;
- form.Show();
+ form.Show();
- // Call
- chart.ZoomToAll();
+ // Call
+ chart.ZoomToAll();
- // Assert
- Assert.AreEqual(1, invalidated);
- CollectionAssert.AreEqual(series, view.Model.Series);
+ // Assert
+ Assert.AreEqual(1, invalidated);
+ CollectionAssert.AreEqual(series, view.Model.Series);
+ }
}
[Test]
public void UpdateObserver_ChartInForm_ViewInvalidatedSeriesRenewed()
{
// Setup
- var form = new Form();
- var chart = new ChartControl();
- var testData = new ChartLineData(Enumerable.Empty>(), "test data");
- var view = TypeUtils.GetField(chart, "view");
- var invalidated = 0;
+ using (var form = new Form())
+ {
+ var chart = new ChartControl();
+ var testData = new ChartLineData(Enumerable.Empty>(), "test data");
+ var view = TypeUtils.GetField(chart, "view");
+ var invalidated = 0;
- chart.Data = testData;
- var series = view.Model.Series.ToList();
+ chart.Data.Add(testData);
+ chart.UpdateObserver();
+ var series = view.Model.Series.ToList();
- form.Controls.Add(chart);
- view.Invalidated += (sender, args) => invalidated++;
+ form.Controls.Add(chart);
+ view.Invalidated += (sender, args) => invalidated++;
- form.Show();
+ form.Show();
- // Call
- chart.UpdateObserver();
+ // Call
+ chart.UpdateObserver();
- // Assert
- Assert.AreEqual(1, invalidated);
- Assert.AreEqual(1, view.Model.Series.Count);
- Assert.AreNotSame(series[0], view.Model.Series[0]);
+ // Assert
+ Assert.AreEqual(1, invalidated);
+ Assert.AreEqual(1, view.Model.Series.Count);
+ Assert.AreNotSame(series[0], view.Model.Series[0]);
+ }
}
[Test]
@@ -243,22 +173,24 @@
public void BottomAxisTitle_Always_SetsNewTitleToBottomAxis(string newTitle)
{
// Setup
- var form = new Form();
- var chart = new ChartControl();
- var view = TypeUtils.GetField(chart, "view");
- form.Controls.Add(chart);
+ using (var form = new Form())
+ {
+ var chart = new ChartControl();
+ var view = TypeUtils.GetField(chart, "view");
+ form.Controls.Add(chart);
- form.Show();
+ form.Show();
- var invalidated = 0;
- view.Invalidated += (sender, args) => invalidated++;
+ var invalidated = 0;
+ view.Invalidated += (sender, args) => invalidated++;
- // Call
- chart.BottomAxisTitle = newTitle;
+ // Call
+ chart.BottomAxisTitle = newTitle;
- // Assert
- Assert.AreEqual(chart.BottomAxisTitle, newTitle);
- Assert.AreEqual(1, invalidated);
+ // Assert
+ Assert.AreEqual(chart.BottomAxisTitle, newTitle);
+ Assert.AreEqual(1, invalidated);
+ }
}
[Test]
@@ -268,22 +200,24 @@
public void SetLeftAxisTitle_Always_SetsNewTitleToLeftAxis(string newTitle)
{
// Setup
- var form = new Form();
- var chart = new ChartControl();
- var view = TypeUtils.GetField(chart, "view");
- form.Controls.Add(chart);
+ using (var form = new Form())
+ {
+ var chart = new ChartControl();
+ var view = TypeUtils.GetField(chart, "view");
+ form.Controls.Add(chart);
- form.Show();
+ form.Show();
- var invalidated = 0;
- view.Invalidated += (sender, args) => invalidated++;
+ var invalidated = 0;
+ view.Invalidated += (sender, args) => invalidated++;
- // Call
- chart.LeftAxisTitle = newTitle;
+ // Call
+ chart.LeftAxisTitle = newTitle;
- // Assert
- Assert.AreEqual(chart.LeftAxisTitle, newTitle);
- Assert.AreEqual(1, invalidated);
+ // Assert
+ Assert.AreEqual(chart.LeftAxisTitle, newTitle);
+ Assert.AreEqual(1, invalidated);
+ }
}
[Test]
@@ -293,22 +227,24 @@
public void SetModelTitle_Always_SetsNewTitleToModelAndViewInvalidated(string newTitle)
{
// Setup
- var form = new Form();
- var chart = new ChartControl();
- var view = TypeUtils.GetField(chart, "view");
- form.Controls.Add(chart);
+ using (var form = new Form())
+ {
+ var chart = new ChartControl();
+ var view = TypeUtils.GetField(chart, "view");
+ form.Controls.Add(chart);
- form.Show();
+ form.Show();
- var invalidated = 0;
- view.Invalidated += (sender, args) => invalidated++;
+ var invalidated = 0;
+ view.Invalidated += (sender, args) => invalidated++;
- // Call
- chart.ChartTitle = newTitle;
+ // Call
+ chart.ChartTitle = newTitle;
- // Assert
- Assert.AreEqual(chart.ChartTitle, newTitle);
- Assert.AreEqual(1, invalidated);
+ // Assert
+ Assert.AreEqual(chart.ChartTitle, newTitle);
+ Assert.AreEqual(1, invalidated);
+ }
}
}
}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.OxyPlot/Forms/ChartDataView.cs
===================================================================
diff -u -r30b12b82918d500fe834eafd9f6cd9b2c5dbe60f -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Plugins/src/Core.Plugins.OxyPlot/Forms/ChartDataView.cs (.../ChartDataView.cs) (revision 30b12b82918d500fe834eafd9f6cd9b2c5dbe60f)
+++ Core/Plugins/src/Core.Plugins.OxyPlot/Forms/ChartDataView.cs (.../ChartDataView.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -30,7 +30,7 @@
///
public partial class ChartDataView : UserControl, IChartView
{
- private ChartData data;
+ private ChartDataCollection data;
///
/// Creates a new instance of .
@@ -48,11 +48,16 @@
}
set
{
- data = (ChartData) value;
+ data = (ChartDataCollection) value;
if (data != null)
{
- Chart.Data = data;
+ foreach (var chartData in data.List)
+ {
+ Chart.Data.Add(chartData);
+ }
+
+ Chart.Data.NotifyObservers();
}
}
}
Index: Core/Plugins/test/Core.Plugins.OxyPlot.Test/Forms/ChartDataViewTest.cs
===================================================================
diff -u -r8aa11a9aa48733a5b5b72c58c71674472825b26c -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Plugins/test/Core.Plugins.OxyPlot.Test/Forms/ChartDataViewTest.cs (.../ChartDataViewTest.cs) (revision 8aa11a9aa48733a5b5b72c58c71674472825b26c)
+++ Core/Plugins/test/Core.Plugins.OxyPlot.Test/Forms/ChartDataViewTest.cs (.../ChartDataViewTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -15,107 +15,71 @@
public void DefaultConstructor_Always_AddsChartControl()
{
// Call
- var chartView = new ChartDataView();
+ using (var chartView = new ChartDataView())
+ {
+ // Assert
+ Assert.AreEqual(1, chartView.Controls.Count);
+ object chartObject = chartView.Controls[0];
+ Assert.IsInstanceOf(chartObject);
- // Assert
- Assert.AreEqual(1, chartView.Controls.Count);
- object chartObject = chartView.Controls[0];
- Assert.IsInstanceOf(chartObject);
-
- var chart = (ChartControl)chartObject;
- Assert.AreEqual(DockStyle.Fill, chart.Dock);
- Assert.NotNull(chartView.Chart);
+ var chart = (ChartControl) chartObject;
+ Assert.AreEqual(DockStyle.Fill, chart.Dock);
+ Assert.NotNull(chartView.Chart);
+ }
}
[Test]
- public void Data_SetToNull_ChartControlNoSeries()
+ public void Data_SetToNull_ChartControlNotUpdated()
{
// Setup
- var chartView = new ChartDataView();
- var chart = (ChartControl)chartView.Controls[0];
+ using (var chartView = new ChartDataView())
+ {
+ ChartControl chart = (ChartControl) chartView.Controls[0];
+ ChartDataCollection chartData = chart.Data;
- // Call
- chartView.Data = null;
+ // Call
+ TestDelegate testDelegate = () => chartView.Data = null;
- // Assert
- Assert.IsNull(chart.Data);
+ // Assert
+ Assert.DoesNotThrow(testDelegate);
+ Assert.AreSame(chartData, chart.Data);
+ }
}
[Test]
public void Data_SetToObject_InvalidCastException()
{
// Setup
- var chartView = new ChartDataView();
+ using (var chartView = new ChartDataView())
+ {
+ // Call
+ TestDelegate test = () => chartView.Data = new object();
- // Call
- TestDelegate test = () => chartView.Data = new object();
-
- // Assert
- Assert.Throws(test);
+ // Assert
+ Assert.Throws(test);
+ }
}
[Test]
- public void Data_SetToLineData_ChartDataSet()
- {
- // Setup
- var chartView = new ChartDataView();
- var chart = (ChartControl)chartView.Controls[0];
- var lineData = new ChartLineData(Enumerable.Empty>(), "test data");
-
- // Call
- chartView.Data = lineData;
-
- // Assert
- Assert.AreSame(lineData, chart.Data);
- Assert.AreSame(lineData, chartView.Data);
- }
-
- [Test]
- public void Data_SetToPointData_ChartDataSet()
- {
- // Setup
- var chartView = new ChartDataView();
- var chart = (ChartControl)chartView.Controls[0];
- var pointData = new ChartPointData(Enumerable.Empty>(), "test data");
-
- // Call
- chartView.Data = pointData;
-
- // Assert
- Assert.AreSame(pointData, chart.Data);
- Assert.AreSame(pointData, chartView.Data);
- }
-
- [Test]
- public void Data_SetToAreaData_ChartDataSet()
- {
- // Setup
- var chartView = new ChartDataView();
- var chart = (ChartControl)chartView.Controls[0];
- var areaData = new ChartAreaData(Enumerable.Empty>(), "test data");
-
- // Call
- chartView.Data = areaData;
-
- // Assert
- Assert.AreSame(areaData, chart.Data);
- Assert.AreSame(areaData, chartView.Data);
- }
-
- [Test]
public void Data_SetToCollectionChartData_ChartDataSet()
{
// Setup
- var chartView = new ChartDataView();
- var chart = (ChartControl)chartView.Controls[0];
- var chartDataCollection = new ChartDataCollection(new ChartData[0], "test data");
+ using (var chartView = new ChartDataView())
+ {
+ var chart = (ChartControl) chartView.Controls[0];
+ var pointData = new ChartPointData(Enumerable.Empty>(), "test");
+ var chartDataCollection = new ChartDataCollection(new ChartData[]
+ {
+ pointData
+ }, "test data");
- // Call
- chartView.Data = chartDataCollection;
+ // Call
+ chartView.Data = chartDataCollection;
- // Assert
- Assert.AreSame(chartDataCollection, chart.Data);
- Assert.AreSame(chartDataCollection, chartView.Data);
+ // Assert
+ Assert.AreSame(pointData, chart.Data.List.First());
+ Assert.AreSame(chartDataCollection, chartView.Data);
+ }
}
}
}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.OxyPlot.Test/OxyPlotGuiPluginTest.cs
===================================================================
diff -u -r1dd7affebae1187cb96778e85d021f7dc5ac9e50 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Core/Plugins/test/Core.Plugins.OxyPlot.Test/OxyPlotGuiPluginTest.cs (.../OxyPlotGuiPluginTest.cs) (revision 1dd7affebae1187cb96778e85d021f7dc5ac9e50)
+++ Core/Plugins/test/Core.Plugins.OxyPlot.Test/OxyPlotGuiPluginTest.cs (.../OxyPlotGuiPluginTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -63,8 +63,8 @@
if (useChartView)
{
var chartView = mocks.Stub();
- var chart = mocks.Stub();
- chart.Data = new TestChartData();
+ var chart = new ChartControl();
+ chart.Data.Add(new TestChartData());
chartView.Stub(v => v.Chart).Return(chart);
view = chartView;
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Ringtoets.Piping.Forms.csproj
===================================================================
diff -u -r985b7690055ffc0570e0608c3de6c2f645cafc3b -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Ringtoets.Piping.Forms.csproj (.../Ringtoets.Piping.Forms.csproj) (revision 985b7690055ffc0570e0608c3de6c2f645cafc3b)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Ringtoets.Piping.Forms.csproj (.../Ringtoets.Piping.Forms.csproj) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -153,6 +153,11 @@
Core.Components.Charting.Forms
False
+
+ {516EBC95-B8F2-428C-B7F6-733F01BF8FDD}
+ Core.Components.Charting
+ False
+
{5A91174A-FB95-4C9D-9CA5-81C0B8D4361A}
Core.Components.DotSpatial.Forms
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs
===================================================================
diff -u -r0fdde49cfbdc5a411fac387d6a99484f05112700 -rf816a8ef737d38b4f044855b73abf3ea32b79422
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs (.../PipingInputViewTest.cs) (revision 0fdde49cfbdc5a411fac387d6a99484f05112700)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingInputViewTest.cs (.../PipingInputViewTest.cs) (revision f816a8ef737d38b4f044855b73abf3ea32b79422)
@@ -56,7 +56,7 @@
ChartControl chartControl = view.Controls[0] as ChartControl;
Assert.IsNotNull(chartControl);
Assert.AreEqual(DockStyle.Fill, chartControl.Dock);
- Assert.IsNull(chartControl.Data);
+ Assert.IsNotNull(chartControl.Data);
Assert.AreEqual(Resources.PipingInputView_Distance_DisplayName, chartControl.BottomAxisTitle);
Assert.AreEqual(Resources.PipingInputView_Height_DisplayName, chartControl.LeftAxisTitle);
}