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 Clear_Always_ClearsAllColumnsAndRows() { // Setup var data = new StackChartData(); data.AddColumn("Column 1"); data.AddColumn("Column 2"); data.AddRow("Row 1", new[] { 1.0, 2.0 }); // Precondition Assert.AreEqual(2, data.Columns.Count()); Assert.AreEqual(1, data.Rows.Count()); // Call data.Clear(); // Assert CollectionAssert.IsEmpty(data.Columns); CollectionAssert.IsEmpty(data.Rows); }