public void OnDrop_ChartDataMovedToPositionOutsideRange_ThrowsException(int position) { // Setup var observer = mocks.StrictMock <IObserver>(); mocks.ReplayAll(); var chartData1 = new ChartLineData("line"); var chartData2 = new ChartAreaData("area"); var chartData3 = new ChartPointData("point"); var chartData4 = new ChartMultipleAreaData("multiple area"); var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); chartDataCollection.Add(chartData4); chartDataCollection.Attach(observer); chartLegendView.Data = chartDataCollection; ChartDataContext context1 = GetContext(chartData1); chartDataCollection.Attach(observer); using (var treeViewControl = new TreeViewControl()) { // Call void Call() => info.OnDrop(context1, chartDataCollection, chartDataCollection, position, treeViewControl); // Assert Assert.Throws <ArgumentOutOfRangeException>(Call); } }
public void GivenChartControlWithData_WhenDataSetToOtherChartDataCollection_ThenChartControlUpdated() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection1 = new ChartDataCollection("Collection 1"); var chartDataCollection2 = new ChartDataCollection("Collection 2"); chartDataCollection1.Add(chartPointData); chartDataCollection2.Add(chartLineData); chartDataCollection2.Add(chartAreaData); chartControl.Data = chartDataCollection1; // Precondition Assert.AreEqual(1, linearPlotView.Model.Series.Count); Assert.AreEqual("Points", linearPlotView.Model.Series[0].Title); // When chartControl.Data = chartDataCollection2; // Then Assert.AreEqual(2, linearPlotView.Model.Series.Count); Assert.AreEqual("Lines", linearPlotView.Model.Series[0].Title); Assert.AreEqual("Areas", linearPlotView.Model.Series[1].Title); } }
public void GivenChartAreaDataSeries_WhenUpdatedAfterChartAreaDataPointsChanged_ChartAreaDataSeriesPointsChanged() { // Given var chartAreaData = new ChartAreaData("Test name") { Points = new[] { new Point2D(1.1, 2.2) } }; var chartAreaDataSeries = new ChartAreaDataSeries(chartAreaData); DataPoint[] drawnPoints = chartAreaDataSeries.Points.ToArray(); // When chartAreaData.Points = new[] { new Point2D(3.3, 4.4) }; chartAreaDataSeries.Update(); // Then CollectionAssert.AreNotEqual(drawnPoints, chartAreaDataSeries.Points); }
public void GivenChartControlWithData_WhenChartDataNotifiesChange_ThenAllSeriesReused() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); var nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1"); var nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(nestedChartDataCollection1); nestedChartDataCollection1.Add(chartLineData); nestedChartDataCollection1.Add(nestedChartDataCollection2); nestedChartDataCollection2.Add(chartAreaData); chartControl.Data = chartDataCollection; List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList(); // When chartLineData.Points = new Point2D[0]; chartLineData.NotifyObservers(); // Then CollectionAssert.AreEqual(seriesBeforeUpdate, linearPlotView.Model.Series); } }
public void ConvertSeriesItems_ChartAreaDataWithRandomPointData_ConvertsAllPointsToAreaSeries() { // Setup var converter = new ChartAreaDataConverter(); var areaSeries = new AreaSeries(); var random = new Random(21); int randomCount = random.Next(5, 10); var points = new Collection <Point2D>(); for (var i = 0; i < randomCount; i++) { points.Add(new Point2D(random.NextDouble(), random.NextDouble())); } var areaData = new ChartAreaData("test data") { Points = points.ToArray() }; // Call converter.ConvertSeriesData(areaData, areaSeries); // Assert DataPoint[] expectedPoints = points.Select(t => new DataPoint(t.X, t.Y)).ToArray(); CollectionAssert.AreEqual(expectedPoints, areaSeries.Points); CollectionAssert.AreEqual(new Collection <DataPoint> { expectedPoints.First() }, areaSeries.Points2); }
public void GetFeatureBasedChartDataRecursively_CollectionWithNestedData_ReturnAllFeatureBasedChartData() { // Setup var line = new ChartLineData("line"); var polygon = new ChartAreaData("polygon"); var nestedCollection = new ChartDataCollection("nested"); nestedCollection.Add(line); nestedCollection.Add(polygon); var collection = new ChartDataCollection("test"); var point = new ChartPointData("point"); collection.Add(point); collection.Add(nestedCollection); // Call ChartData[] featureBasedChartDatas = collection.GetChartDataRecursively().ToArray(); // Assert Assert.AreEqual(3, featureBasedChartDatas.Length); Assert.IsInstanceOf <ChartPointData>(featureBasedChartDatas[0]); Assert.IsInstanceOf <ChartLineData>(featureBasedChartDatas[1]); Assert.IsInstanceOf <ChartAreaData>(featureBasedChartDatas[2]); }
public void GivenChartControlWithoutData_WhenDataSetToChartDataCollection_ThenChartControlUpdated() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); var nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1"); var nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(nestedChartDataCollection1); nestedChartDataCollection1.Add(chartLineData); nestedChartDataCollection1.Add(nestedChartDataCollection2); nestedChartDataCollection2.Add(chartAreaData); // When chartControl.Data = chartDataCollection; // Then ElementCollection <Series> series = linearPlotView.Model.Series; Assert.AreEqual(3, series.Count); Assert.AreEqual("Points", series[0].Title); Assert.AreEqual("Lines", series[1].Title); Assert.AreEqual("Areas", series[2].Title); } }
private static void SetChartAreaDataTestProperties(ChartAreaData chartAreaData) { chartAreaData.Name = "Another name"; chartAreaData.IsVisible = false; chartAreaData.Points = new[] { new Point2D(1.1, 2.2) }; }
/// <summary> /// Creates a new instance of <see cref="ChartAreaDataSeries"/>. /// </summary> /// <param name="chartAreaData">The <see cref="ChartAreaData"/> which the chart area data series is based upon.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="chartAreaData"/> is <c>null</c>.</exception> public ChartAreaDataSeries(ChartAreaData chartAreaData) { if (chartAreaData == null) { throw new ArgumentNullException(nameof(chartAreaData)); } this.chartAreaData = chartAreaData; Update(); }
public void Constructor_Always_CreatesNewInstanceOfDefaultStyle() { // Setup var dataA = new ChartAreaData("test data"); // Call var dataB = new ChartAreaData("test data"); // Assert Assert.AreNotSame(dataA.Style, dataB.Style); }
public void Constructor_WithStyle_ExpectedValue() { // Setup var style = new ChartAreaStyle(); // Call var data = new ChartAreaData("test data", style); // Assert Assert.AreEqual("test data", data.Name); CollectionAssert.IsEmpty(data.Points); Assert.IsInstanceOf <PointBasedChartData>(data); Assert.AreSame(style, data.Style); }
public void Constructor_ValidName_NameAndDefaultValuesSet() { // Call var data = new ChartAreaData("test data"); // Assert Assert.AreEqual("test data", data.Name); CollectionAssert.IsEmpty(data.Points); Assert.IsInstanceOf <PointBasedChartData>(data); Assert.AreEqual(Color.Gray, data.Style.FillColor); Assert.AreEqual(Color.Black, data.Style.StrokeColor); Assert.AreEqual(2, data.Style.StrokeThickness); Assert.IsFalse(data.Style.IsEditable); }
public void Constructor_Always_PropertiesHaveExpectedAttributesValues(bool isStyleEditable) { // Setup var chartAreaData = new ChartAreaData("Test", new ChartAreaStyle { IsEditable = isStyleEditable }); // Call var properties = new ChartAreaDataProperties { Data = chartAreaData }; // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(6, dynamicProperties.Count); const string styleCategory = "Stijl"; PropertyDescriptor fillColorProperty = dynamicProperties[fillColorPropertyIndex]; Assert.IsInstanceOf <ColorTypeConverter>(fillColorProperty.Converter); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(fillColorProperty, styleCategory, "Kleur", "De kleur van de vlakken waarmee deze gegevensreeks wordt weergegeven.", !isStyleEditable); PropertyDescriptor strokeColorProperty = dynamicProperties[strokeColorPropertyIndex]; Assert.IsInstanceOf <ColorTypeConverter>(fillColorProperty.Converter); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(strokeColorProperty, styleCategory, "Lijnkleur", "De kleur van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven.", !isStyleEditable); PropertyDescriptor strokeThicknessProperty = dynamicProperties[strokeThicknessPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(strokeThicknessProperty, styleCategory, "Lijndikte", "De dikte van de lijn van de vlakken waarmee deze gegevensreeks wordt weergegeven.", !isStyleEditable); }
public void ConvertSeriesProperties_WithDifferentStrokeWidths_AppliesStyleToSeries(int width) { // Setup var converter = new ChartAreaDataConverter(); var areaSeries = new AreaSeries(); var data = new ChartAreaData("test", new ChartAreaStyle { FillColor = Color.Red, StrokeColor = Color.Red, StrokeThickness = width }); // Call converter.ConvertSeriesProperties(data, areaSeries); // Assert Assert.AreEqual(width, areaSeries.StrokeThickness); }
public void ConvertSeriesProperties_WithDifferentFillColors_AppliesStyleToSeries(KnownColor color) { // Setup var converter = new ChartAreaDataConverter(); var areaSeries = new AreaSeries(); Color expectedColor = Color.FromKnownColor(color); var data = new ChartAreaData("test", new ChartAreaStyle { FillColor = expectedColor, StrokeColor = Color.Red, StrokeThickness = 3 }); // Call converter.ConvertSeriesProperties(data, areaSeries); // Assert AssertColors(expectedColor, areaSeries.Fill); }
public void Constructor_ChartAreaDataWithTestProperties_ChartAreaDataSeriesCreatedAccordingly() { // Setup var chartAreaData = new ChartAreaData("Test name", new ChartAreaStyle { FillColor = fillColor, StrokeColor = strokeColor, StrokeThickness = 3 }); SetChartAreaDataTestProperties(chartAreaData); // Call var chartAreaDataSeries = new ChartAreaDataSeries(chartAreaData); // Assert Assert.IsInstanceOf <AreaSeries>(chartAreaDataSeries); Assert.IsInstanceOf <IChartDataSeries>(chartAreaDataSeries); AssertChartAreaDataSeriesTestProperties(chartAreaDataSeries); }
public void GivenChartAreaDataSeries_WhenUpdatedAndChartAreaDataPointsNotChanged_PreviousChartAreaDataSeriesPointsPreserved() { // Given var chartAreaData = new ChartAreaData("Test name") { Points = new[] { new Point2D(1.1, 2.2) } }; var chartAreaDataSeries = new ChartAreaDataSeries(chartAreaData); DataPoint[] drawnPoints = chartAreaDataSeries.Points.ToArray(); // When chartAreaDataSeries.Update(); // Then CollectionAssert.AreEqual(drawnPoints, chartAreaDataSeries.Points); }
public void GivenChartControlWithData_WhenChartDataAdded_ThenCorrespondingSeriesAddedAndOtherSeriesReused() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); var nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1"); var nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(nestedChartDataCollection1); nestedChartDataCollection1.Add(chartLineData); nestedChartDataCollection1.Add(nestedChartDataCollection2); nestedChartDataCollection2.Add(chartAreaData); chartControl.Data = chartDataCollection; List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList(); // Precondition Assert.AreEqual(3, seriesBeforeUpdate.Count); // When nestedChartDataCollection1.Insert(0, new ChartAreaData("Additional areas")); nestedChartDataCollection1.NotifyObservers(); // Then ElementCollection <Series> series = linearPlotView.Model.Series; Assert.AreEqual(4, series.Count); Assert.AreEqual("Points", series[0].Title); Assert.AreEqual("Additional areas", series[1].Title); Assert.AreEqual("Lines", series[2].Title); Assert.AreEqual("Areas", series[3].Title); Assert.AreEqual(0, seriesBeforeUpdate.Except(series).Count()); } }
public void Update_ChartAreaDataWithTestProperties_ChartAreaDataSeriesUpdatedAccordingly() { // Setup var chartAreaData = new ChartAreaData("Test name", new ChartAreaStyle { FillColor = fillColor, StrokeColor = strokeColor, StrokeThickness = 3 }); var chartAreaDataSeries = new ChartAreaDataSeries(chartAreaData); SetChartAreaDataTestProperties(chartAreaData); // Precondition AssertChartAreaDataSeriesDefaultProperties(chartAreaDataSeries); // Call chartAreaDataSeries.Update(); // Assert AssertChartAreaDataSeriesTestProperties(chartAreaDataSeries); }
public void SetProperties_IndividualProperties_UpdateDataAndNotifyObservers() { // Setup const int numberOfChangedProperties = 3; var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()).Repeat.Times(numberOfChangedProperties); mocks.ReplayAll(); var chartAreaData = new ChartAreaData("Test", new ChartAreaStyle { FillColor = Color.AliceBlue, StrokeColor = Color.Blue, StrokeThickness = 3 }); chartAreaData.Attach(observer); var properties = new ChartAreaDataProperties { Data = chartAreaData }; Color newFillColor = Color.Blue; Color newStrokeColor = Color.Red; const int newStrokeThickness = 6; // Call properties.FillColor = newFillColor; properties.StrokeColor = newStrokeColor; properties.StrokeThickness = newStrokeThickness; // Assert Assert.AreEqual(newFillColor, chartAreaData.Style.FillColor); Assert.AreEqual(newStrokeColor, chartAreaData.Style.StrokeColor); Assert.AreEqual(newStrokeThickness, chartAreaData.Style.StrokeThickness); mocks.VerifyAll(); }
public void GivenChartControlWithData_WhenChartDataMoved_ThenCorrespondingSeriesMovedAndAllSeriesReused() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(chartLineData); chartDataCollection.Add(chartAreaData); chartControl.Data = chartDataCollection; List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList(); // Precondition Assert.AreEqual(3, seriesBeforeUpdate.Count); Assert.AreEqual("Points", seriesBeforeUpdate[0].Title); Assert.AreEqual("Lines", seriesBeforeUpdate[1].Title); Assert.AreEqual("Areas", seriesBeforeUpdate[2].Title); // When chartDataCollection.Remove(chartPointData); chartDataCollection.Add(chartPointData); chartDataCollection.NotifyObservers(); // Then ElementCollection <Series> series = linearPlotView.Model.Series; Assert.AreEqual(3, series.Count); Assert.AreEqual("Lines", series[0].Title); Assert.AreEqual("Areas", series[1].Title); Assert.AreEqual("Points", series[2].Title); Assert.AreEqual(0, seriesBeforeUpdate.Except(series).Count()); } }
public void Data_SetNewChartAreaDataInstance_ReturnCorrectPropertyValues() { // Setup Color fillColor = Color.Aqua; Color strokeColor = Color.Bisque; const int strokeThickness = 4; var chartAreaData = new ChartAreaData("Test", new ChartAreaStyle { FillColor = fillColor, StrokeColor = strokeColor, StrokeThickness = strokeThickness }); var properties = new ChartAreaDataProperties(); // Call properties.Data = chartAreaData; // Assert Assert.AreEqual(fillColor, properties.FillColor); Assert.AreEqual(strokeColor, properties.StrokeColor); Assert.AreEqual(strokeThickness, properties.StrokeThickness); }