Index: Core/Components/src/Core.Components.DotSpatial/Converter/FeatureBasedMapDataConverter.cs
===================================================================
diff -u -r6a120e6618195c2c7b56d31f7c24637f5baa17e3 -rcfaf7a697ebd90c7929af22bd4b17126ae03e6c0
--- Core/Components/src/Core.Components.DotSpatial/Converter/FeatureBasedMapDataConverter.cs (.../FeatureBasedMapDataConverter.cs) (revision 6a120e6618195c2c7b56d31f7c24637f5baa17e3)
+++ Core/Components/src/Core.Components.DotSpatial/Converter/FeatureBasedMapDataConverter.cs (.../FeatureBasedMapDataConverter.cs) (revision cfaf7a697ebd90c7929af22bd4b17126ae03e6c0)
@@ -91,7 +91,7 @@
layer.IsVisible = data.IsVisible;
layer.Name = data.Name;
layer.ShowLabels = data.ShowLabels;
- ((IMapFeatureLayer) layer).LabelLayer = GetLabelLayer(GetAttributeMapping(data), layer.DataSet, data.SelectedMetaDataAttribute);
+ layer.LabelLayer = GetLabelLayer(GetAttributeMapping(data), layer.DataSet, data.SelectedMetaDataAttribute);
layer.Symbolizer = CreateSymbolizer(data);
}
@@ -111,8 +111,8 @@
protected abstract IFeatureSymbolizer CreateSymbolizer(TFeatureBasedMapData mapData);
///
- /// Converts an of to an
- /// of .
+ /// Converts an of to an
+ /// of .
///
/// The of to convert.
/// The converted of .
Index: Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs
===================================================================
diff -u -racf1c815d99af1ce78dfd0b04b1949203c731803 -rcfaf7a697ebd90c7929af22bd4b17126ae03e6c0
--- Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision acf1c815d99af1ce78dfd0b04b1949203c731803)
+++ Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision cfaf7a697ebd90c7929af22bd4b17126ae03e6c0)
@@ -331,7 +331,7 @@
protected override IEnumerable CreateFeatures(MapFeature mapFeature)
{
- throw new NotImplementedException();
+ return Enumerable.Empty();
}
}
}
Index: Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapLineDataLayerTest.cs
===================================================================
diff -u -r2387671968c5d81cf86332ae9e6860c5f34eb707 -rcfaf7a697ebd90c7929af22bd4b17126ae03e6c0
--- Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapLineDataLayerTest.cs (.../MapLineDataLayerTest.cs) (revision 2387671968c5d81cf86332ae9e6860c5f34eb707)
+++ Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapLineDataLayerTest.cs (.../MapLineDataLayerTest.cs) (revision cfaf7a697ebd90c7929af22bd4b17126ae03e6c0)
@@ -22,6 +22,7 @@
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
+using System.Linq;
using Core.Common.Base.Geometry;
using Core.Components.DotSpatial.Layer;
using Core.Components.Gis.Data;
@@ -81,6 +82,54 @@
AssertMapLineDataLayerTestProperties(mapLineDataLayer);
}
+ [Test]
+ public void GivenMapLineDataLayer_WhenUpdatedAfterMapLineDataFeaturesChanged_MapLineDataLayerFeaturesChanged()
+ {
+ // Given
+ var mapLineData = new MapLineData("Test name")
+ {
+ Features = new[]
+ {
+ CreateTestMapFeature()
+ }
+ };
+
+ var mapLineDataLayer = new MapLineDataLayer(mapLineData);
+ var drawnFeatures = mapLineDataLayer.DataSet.Features.ToArray();
+
+ // When
+ mapLineData.Features = new[]
+ {
+ CreateTestMapFeature()
+ };
+ mapLineDataLayer.Update();
+
+ // Then
+ CollectionAssert.AreNotEqual(drawnFeatures, mapLineDataLayer.DataSet.Features);
+ }
+
+ [Test]
+ public void GivenMapLineDataLayer_WhenUpdatedAndMapLineDataFeaturesNotChanged_PreviousMapLineDataLayerFeaturesPreserved()
+ {
+ // Given
+ var mapLineData = new MapLineData("Test name")
+ {
+ Features = new[]
+ {
+ CreateTestMapFeature()
+ }
+ };
+
+ var mapLineDataLayer = new MapLineDataLayer(mapLineData);
+ var drawnFeatures = mapLineDataLayer.DataSet.Features.ToArray();
+
+ // When
+ mapLineDataLayer.Update();
+
+ // Then
+ CollectionAssert.AreEqual(drawnFeatures, mapLineDataLayer.DataSet.Features);
+ }
+
private static void SetMapLineDataTestProperties(MapLineData mapLineData)
{
mapLineData.Name = "Another test name";
Index: Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapPointDataLayerTest.cs
===================================================================
diff -u -rd7d912bee9f281aa37e4fb3a077fcbb9b75f2224 -rcfaf7a697ebd90c7929af22bd4b17126ae03e6c0
--- Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapPointDataLayerTest.cs (.../MapPointDataLayerTest.cs) (revision d7d912bee9f281aa37e4fb3a077fcbb9b75f2224)
+++ Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapPointDataLayerTest.cs (.../MapPointDataLayerTest.cs) (revision cfaf7a697ebd90c7929af22bd4b17126ae03e6c0)
@@ -21,6 +21,7 @@
using System;
using System.Drawing;
+using System.Linq;
using Core.Common.Base.Geometry;
using Core.Components.DotSpatial.Layer;
using Core.Components.Gis.Data;
@@ -80,6 +81,54 @@
AssertMapPointDataLayerTestProperties(mapPointDataLayer);
}
+ [Test]
+ public void GivenMapPointDataLayer_WhenUpdatedAfterMapPointDataFeaturesChanged_MapPointDataLayerFeaturesChanged()
+ {
+ // Given
+ var mapPointData = new MapPointData("Test name")
+ {
+ Features = new[]
+ {
+ CreateTestMapFeature()
+ }
+ };
+
+ var mapPointDataLayer = new MapPointDataLayer(mapPointData);
+ var drawnFeatures = mapPointDataLayer.DataSet.Features.ToArray();
+
+ // When
+ mapPointData.Features = new[]
+ {
+ CreateTestMapFeature()
+ };
+ mapPointDataLayer.Update();
+
+ // Then
+ CollectionAssert.AreNotEqual(drawnFeatures, mapPointDataLayer.DataSet.Features);
+ }
+
+ [Test]
+ public void GivenMapPointDataLayer_WhenUpdatedAndMapPointDataFeaturesNotChanged_PreviousMapPointDataLayerFeaturesPreserved()
+ {
+ // Given
+ var mapPointData = new MapPointData("Test name")
+ {
+ Features = new[]
+ {
+ CreateTestMapFeature()
+ }
+ };
+
+ var mapPointDataLayer = new MapPointDataLayer(mapPointData);
+ var drawnFeatures = mapPointDataLayer.DataSet.Features.ToArray();
+
+ // When
+ mapPointDataLayer.Update();
+
+ // Then
+ CollectionAssert.AreEqual(drawnFeatures, mapPointDataLayer.DataSet.Features);
+ }
+
private static void SetMapPointDataTestProperties(MapPointData mapPointData)
{
mapPointData.Name = "Another test name";
Index: Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapPolygonDataLayerTest.cs
===================================================================
diff -u -r2387671968c5d81cf86332ae9e6860c5f34eb707 -rcfaf7a697ebd90c7929af22bd4b17126ae03e6c0
--- Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapPolygonDataLayerTest.cs (.../MapPolygonDataLayerTest.cs) (revision 2387671968c5d81cf86332ae9e6860c5f34eb707)
+++ Core/Components/test/Core.Components.DotSpatial.Test/Layer/MapPolygonDataLayerTest.cs (.../MapPolygonDataLayerTest.cs) (revision cfaf7a697ebd90c7929af22bd4b17126ae03e6c0)
@@ -21,6 +21,7 @@
using System;
using System.Drawing;
+using System.Linq;
using Core.Common.Base.Geometry;
using Core.Components.DotSpatial.Layer;
using Core.Components.Gis.Data;
@@ -80,6 +81,54 @@
AssertMapPolygonDataLayerTestProperties(mapPolygonDataLayer);
}
+ [Test]
+ public void GivenMapPolygonDataLayer_WhenUpdatedAfterMapPolygonDataFeaturesChanged_MapPolygonDataLayerFeaturesChanged()
+ {
+ // Given
+ var mapPolygonData = new MapPolygonData("Test name")
+ {
+ Features = new[]
+ {
+ CreateTestMapFeature()
+ }
+ };
+
+ var mapPolygonDataLayer = new MapPolygonDataLayer(mapPolygonData);
+ var drawnFeatures = mapPolygonDataLayer.DataSet.Features.ToArray();
+
+ // When
+ mapPolygonData.Features = new[]
+ {
+ CreateTestMapFeature()
+ };
+ mapPolygonDataLayer.Update();
+
+ // Then
+ CollectionAssert.AreNotEqual(drawnFeatures, mapPolygonDataLayer.DataSet.Features);
+ }
+
+ [Test]
+ public void GivenMapPolygonDataLayer_WhenUpdatedAndMapPolygonDataFeaturesNotChanged_PreviousMapPolygonDataLayerFeaturesPreserved()
+ {
+ // Given
+ var mapPolygonData = new MapPolygonData("Test name")
+ {
+ Features = new[]
+ {
+ CreateTestMapFeature()
+ }
+ };
+
+ var mapPolygonDataLayer = new MapPolygonDataLayer(mapPolygonData);
+ var drawnFeatures = mapPolygonDataLayer.DataSet.Features.ToArray();
+
+ // When
+ mapPolygonDataLayer.Update();
+
+ // Then
+ CollectionAssert.AreEqual(drawnFeatures, mapPolygonDataLayer.DataSet.Features);
+ }
+
private static void SetMapPolygonDataTestProperties(MapPolygonData mapPolygonData)
{
mapPolygonData.Name = "Another test name";