public void GivenChartControlWithoutData_WhenDataSetToStackChartData_ThenChartControlUpdated() { // Given using (var chart = new StackChartControl()) { var data = new StackChartData(); data.AddColumn("Column 1"); data.AddColumn("Column 2"); data.AddRow("Row 1", new[] { 0.4, 0.2 }); data.AddRow("Row 2", new[] { 0.6, 0.8 }); // When chart.Data = data; // Then CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single(); AssertColumns(data.Columns.ToList(), plotView); AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView); } }
public void GivenChartControlWithData_WhenDataSetToOtherStackChartData_ThenChartControlUpdated() { // Given using (var chart = new StackChartControl()) { var data = new StackChartData(); data.AddColumn("Column 1"); data.AddColumn("Column 2"); data.AddRow("Row 1", new[] { 0.4, 0.2 }); data.AddRow("Row 2", new[] { 0.6, 0.8 }); chart.Data = data; // Precondition CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single(); AssertColumns(data.Columns.ToList(), plotView); AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView); // When var newData = new StackChartData(); newData.AddColumn("Column 3"); newData.AddColumn("Column 4"); newData.AddRow("Row 3", new[] { 0.5, 0.7 }); newData.AddRow("Row 4", new[] { 0.5, 0.3 }); chart.Data = newData; // Then ElementCollection <Series> series = plotView.Model.Series; Assert.AreEqual(2, series.Count); Assert.AreEqual("Row 3", series[0].Title); Assert.AreEqual("Row 4", series[1].Title); CategoryAxis axis = plotView.Model.Axes.OfType <CategoryAxis>().Single(); Assert.AreEqual(2, axis.Labels.Count); Assert.AreEqual("Column 3", axis.Labels[0]); Assert.AreEqual("Column 4", axis.Labels[1]); AssertColumns(newData.Columns.ToList(), plotView); AssertSeries(newData.Rows.Select(r => r.Name).ToList(), plotView); } }
public void GivenChartControlWithData_WhenDataNotified_ThenChartControlUpdated() { // Given using (var chart = new StackChartControl()) { var data = new StackChartData(); data.AddColumn("Column 1"); data.AddColumn("Column 2"); data.AddRow("Row 1", new[] { 0.4, 0.2 }); data.AddRow("Row 2", new[] { 0.6, 0.8 }); chart.Data = data; CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single(); AssertColumns(data.Columns.ToList(), plotView); AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView); // When data.Clear(); data.AddColumn("New column 1"); data.AddColumn("New column 2"); data.AddRow("New row 1", new[] { 0.3, 0.8 }); data.AddRow("New row 2", new[] { 0.8, 0.2 }); data.NotifyObservers(); // Then ElementCollection <Series> series = plotView.Model.Series; Assert.AreEqual(2, series.Count); Assert.AreEqual("New row 1", series[0].Title); Assert.AreEqual("New row 2", series[1].Title); CategoryAxis axis = plotView.Model.Axes.OfType <CategoryAxis>().Single(); Assert.AreEqual(2, axis.Labels.Count); Assert.AreEqual("New column 1", axis.Labels[0]); Assert.AreEqual("New column 2", axis.Labels[1]); } }
public void Constructor_ExpectedValues() { // Call var chart = new StackChartControl(); // Assert Assert.IsInstanceOf <Control>(chart); Assert.IsInstanceOf <IStackChartControl>(chart); Assert.IsNull(chart.Data); CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single(); Assert.AreEqual(Color.White, plotView.BackColor); Assert.IsTrue(plotView.Model.IsLegendVisible); }
public void SetVerticalAxisTitle_Always_SetsVerticalAxisTitleToModelAndViewInvalidated(string newTitle) { // Setup using (var form = new Form()) { var chart = new StackChartControl(); CategoryPlotView view = chart.Controls.OfType <CategoryPlotView>().Single(); form.Controls.Add(chart); form.Show(); var invalidated = 0; view.Invalidated += (sender, args) => invalidated++; // Call chart.VerticalAxisTitle = newTitle; // Assert Assert.AreEqual(newTitle, view.VerticalAxisTitle); Assert.AreEqual(1, invalidated); } }
public void GivenChartControlWithData_WhenDataSetToNull_ThenChartControlUpdated() { // Given using (var chart = new StackChartControl()) { var data = new StackChartData(); data.AddColumn("Column 1"); data.AddColumn("Column 2"); data.AddRow("Row 1", new[] { 0.4, 0.2 }); data.AddRow("Row 2", new[] { 0.6, 0.8 }); chart.Data = data; // Precondition CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single(); AssertColumns(data.Columns.ToList(), plotView); AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView); // When chart.Data = null; // Then ElementCollection <Series> series = plotView.Model.Series; CollectionAssert.IsEmpty(series); CategoryAxis axis = plotView.Model.Axes.OfType <CategoryAxis>().Single(); CollectionAssert.IsEmpty(axis.Labels); } }