Index: Core/Components/src/Core.Components.Stack/Data/StackChartData.cs
===================================================================
diff -u -r63d179e733e9d84cc09055b8919476f3712002d7 -red515ccdb8582831729533a466fccc439a8e07a2
--- Core/Components/src/Core.Components.Stack/Data/StackChartData.cs (.../StackChartData.cs) (revision 63d179e733e9d84cc09055b8919476f3712002d7)
+++ Core/Components/src/Core.Components.Stack/Data/StackChartData.cs (.../StackChartData.cs) (revision ed515ccdb8582831729533a466fccc439a8e07a2)
@@ -70,9 +70,21 @@
/// Thrown when
/// or
/// is null.
+ /// Thrown when the
+ /// amount of is not equal to
+ /// the amount of .
public void AddRow(string name, double[] values, Color? color = null)
{
- // Check if the number of items is the same as the number of columns
+ if (values == null)
+ {
+ throw new ArgumentNullException(nameof(values));
+ }
+
+ if (values.Length != Columns.Count)
+ {
+ throw new ArgumentException("The number of value items must be the same as the number of columns.");
+ }
+
Rows.Add(new RowChartData(name, values, color));
}
}
Index: Core/Components/test/Core.Components.Stack.Test/Core.Components.Stack.Test.csproj
===================================================================
diff -u -r5e5fdd42139b4b72dd695f8773a6cf964eebe879 -red515ccdb8582831729533a466fccc439a8e07a2
--- Core/Components/test/Core.Components.Stack.Test/Core.Components.Stack.Test.csproj (.../Core.Components.Stack.Test.csproj) (revision 5e5fdd42139b4b72dd695f8773a6cf964eebe879)
+++ Core/Components/test/Core.Components.Stack.Test/Core.Components.Stack.Test.csproj (.../Core.Components.Stack.Test.csproj) (revision ed515ccdb8582831729533a466fccc439a8e07a2)
@@ -67,6 +67,10 @@
{3BBFD65B-B277-4E50-AE6D-BD24C3434609}
Core.Common.Base
+
+ {D749EE4C-CE50-4C17-BF01-9A953028C126}
+ Core.Common.TestUtil
+
{6A146889-A3C4-48BF-AF53-C0B0CD355BE4}
Core.Components.Stack
Index: Core/Components/test/Core.Components.Stack.Test/Data/StackChartDataTest.cs
===================================================================
diff -u -r63d179e733e9d84cc09055b8919476f3712002d7 -red515ccdb8582831729533a466fccc439a8e07a2
--- Core/Components/test/Core.Components.Stack.Test/Data/StackChartDataTest.cs (.../StackChartDataTest.cs) (revision 63d179e733e9d84cc09055b8919476f3712002d7)
+++ Core/Components/test/Core.Components.Stack.Test/Data/StackChartDataTest.cs (.../StackChartDataTest.cs) (revision ed515ccdb8582831729533a466fccc439a8e07a2)
@@ -23,6 +23,7 @@
using System.Drawing;
using System.Linq;
using Core.Common.Base;
+using Core.Common.TestUtil;
using Core.Components.Stack.Data;
using NUnit.Framework;
@@ -92,6 +93,7 @@
{
// Setup
var data = new StackChartData();
+ data.AddColumn("Column 1");
// Call
TestDelegate test = () => data.AddRow("test", null, Color.White);
@@ -102,6 +104,23 @@
}
[Test]
+ public void AddRow_NumberOfColumnsDifferentThanValueItems_ThrowsArgumentException()
+ {
+ // Setup
+ var data = new StackChartData();
+
+ // Call
+ TestDelegate test = () => data.AddRow("test", new[]
+ {
+ 2.1
+ });
+
+ // Assert
+ const string message = "The number of value items must be the same as the number of columns.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, message);
+ }
+
+ [Test]
public void AddRow_ValidDataWithColor_AddRowToCollection()
{
// Setup
@@ -113,6 +132,7 @@
Color color = Color.Yellow;
var data = new StackChartData();
+ data.AddColumn("Column 1");
// Call
data.AddRow(name, values, color);
@@ -136,6 +156,7 @@
};
var data = new StackChartData();
+ data.AddColumn("Column 1");
// Call
data.AddRow(name, values);