Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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]);
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
            }
        }