Index: Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs =================================================================== diff -u -r0d2cd7f9aa85b91414ce16c36b4beeca87fac87a -r0e524a720919848a33bb6bb331082c2d32ff1b5c --- Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision 0d2cd7f9aa85b91414ce16c36b4beeca87fac87a) +++ Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision 0e524a720919848a33bb6bb331082c2d32ff1b5c) @@ -26,7 +26,6 @@ using System.Linq; using Core.Common.TestUtil; using Core.Components.DotSpatial.Converter; -using Core.Components.DotSpatial.TestUtil; using Core.Components.Gis.Data; using Core.Components.Gis.Features; using Core.Components.Gis.Geometries; @@ -45,10 +44,10 @@ public void ConvertLayerFeatures_DataNull_ThrowsArgumentNullException() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); + var testConverter = new TestFeatureBasedMapDataConverter(); // Call - TestDelegate test = () => testConverter.ConvertLayerFeatures(null, new MapPointLayer()); + TestDelegate test = () => testConverter.ConvertLayerFeatures(null, new TestFeatureLayer()); // Assert const string expectedMessage = "Null data cannot be converted into a feature layer data."; @@ -59,8 +58,8 @@ public void ConvertLayerFeatures_TargetLayerNull_ThrowsArgumentNullException() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var testFeatureBasedMapData = new TestFeatureBasedMapData("test data"); + var testConverter = new TestFeatureBasedMapDataConverter(); + var testFeatureBasedMapData = new TestUtil.TestFeatureBasedMapData("test data"); // Call TestDelegate test = () => testConverter.ConvertLayerFeatures(testFeatureBasedMapData, null); @@ -74,10 +73,10 @@ public void ConvertLayerProperties_DataNull_ThrowsArgumentNullException() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); + var testConverter = new TestFeatureBasedMapDataConverter(); // Call - TestDelegate test = () => testConverter.ConvertLayerProperties(null, new MapPointLayer()); + TestDelegate test = () => testConverter.ConvertLayerProperties(null, new TestFeatureLayer()); // Assert const string expectedMessage = "Null data cannot be converted into a feature layer data."; @@ -88,8 +87,8 @@ public void ConvertLayerProperties_TargetLayerNull_ThrowsArgumentNullException() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var testFeatureBasedMapData = new TestFeatureBasedMapData("test data"); + var testConverter = new TestFeatureBasedMapDataConverter(); + var testFeatureBasedMapData = new TestUtil.TestFeatureBasedMapData("test data"); // Call TestDelegate test = () => testConverter.ConvertLayerProperties(testFeatureBasedMapData, null); @@ -103,156 +102,133 @@ public void ConvertLayerFeatures_MapDataWithMetaData_MetaDataSetToLayer() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var mapPointLayer = new MapPointLayer(); - var mapData = new Class("test") + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapLayer = new TestFeatureLayer(); + var mapData = new TestFeatureBasedMapData("test") { Features = new[] { new MapFeature(Enumerable.Empty()) { MetaData = { - { "Id", 1.1 }, - { "Name", "Feature 1" } + { + "Id", 1.1 + }, + { + "Name", "Feature 1" + }, + { + "Extra 1", "Feature 1 extra" + } } }, new MapFeature(Enumerable.Empty()) { MetaData = { - { "Id", 2.2 }, - { "Name", "Feature 2" } + { + "Id", 2.2 + }, + { + "Name", "Feature 2" + }, + { + "Extra 2", "Feature 2 extra" + } } } } }; // Call - testConverter.ConvertLayerFeatures(mapData, mapPointLayer); + testConverter.ConvertLayerFeatures(mapData, mapLayer); // Assert - var dataColumnCollection = mapPointLayer.DataSet.DataTable.Columns; - Assert.AreEqual(2, dataColumnCollection.Count); + var dataColumnCollection = mapLayer.DataSet.DataTable.Columns; + Assert.AreEqual(4, dataColumnCollection.Count); Assert.AreEqual("1", dataColumnCollection[0].ToString()); Assert.AreEqual("2", dataColumnCollection[1].ToString()); + Assert.AreEqual("3", dataColumnCollection[2].ToString()); + Assert.AreEqual("4", dataColumnCollection[3].ToString()); - var dataRowCollection = mapPointLayer.DataSet.DataTable.Rows; + var dataRowCollection = mapLayer.DataSet.DataTable.Rows; Assert.AreEqual(2, dataRowCollection.Count); Assert.AreEqual(1.1.ToString(CultureInfo.CurrentCulture), dataRowCollection[0][0]); Assert.AreEqual("Feature 1", dataRowCollection[0][1]); + Assert.AreEqual("Feature 1 extra", dataRowCollection[0][2]); + Assert.AreEqual(string.Empty, dataRowCollection[0][3].ToString()); Assert.AreEqual(2.2.ToString(CultureInfo.CurrentCulture), dataRowCollection[1][0]); Assert.AreEqual("Feature 2", dataRowCollection[1][1]); + Assert.AreEqual(string.Empty, dataRowCollection[1][2].ToString()); + Assert.AreEqual("Feature 2 extra", dataRowCollection[1][3]); } [Test] public void ConvertLayerProperties_MapData_NameSetToLayer() { // Setup var name = ""; - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class(name); - var layer = new MapPointLayer(); + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData(name); + var mapLayer = new TestFeatureLayer(); // Call - testConverter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(mapData, mapLayer); // Assert - Assert.AreEqual(name, layer.Name); + Assert.AreEqual(name, mapLayer.Name); } - [TestCase(true)] - [TestCase(false)] - public void ConvertLayerProperties_MapData_ShowLabelsSetToLayer(bool showLabels) - { - // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test data") - { - ShowLabels = showLabels - }; - var layer = new MapPointLayer(); - - // Call - testConverter.ConvertLayerProperties(data, layer); - - // Assert - Assert.AreEqual(showLabels, layer.ShowLabels); - } - - [TestCase(true)] - [TestCase(false)] - public void ConvertLayerProperties_MapData_IsVisibleSetToLayer(bool isVisible) - { - // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test data") - { - IsVisible = isVisible - }; - var layer = new MapPointLayer(); - - // Call - testConverter.ConvertLayerProperties(data, layer); - - // Assert - Assert.AreEqual(isVisible, layer.IsVisible); - } - [Test] public void ConvertLayerProperties_LayerWithoutDataColumns_DefaultLabelLayerSetToLayer() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test data") + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData("test data") { Features = new[] { new MapFeature(Enumerable.Empty()) { MetaData = { - { "Id", 1.1 }, - { "Name", "Feature" } + { + "Id", 1.1 + }, + { + "Name", "Feature" + } } } }, SelectedMetaDataAttribute = "Name" }; - var layer = new MapPointLayer(); + var mapLayer = new TestFeatureLayer(); // Call - testConverter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(mapData, mapLayer); // Assert - Assert.IsNotNull(layer.LabelLayer); - Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); - Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + Assert.IsNotNull(mapLayer.LabelLayer); + Assert.AreEqual("FID", mapLayer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(mapLayer.LabelLayer.Symbology.Categories[0].Expression); } - [TestCase(null)] - [TestCase("")] - [TestCase("Unknown")] - public void ConvertLayerProperties_SelectedMetaDataAttributeEmptyOrUnknown_DefaultLabelLayerSetToLayer(string selectedMetaDataAttribute) + [Test] + public void ConvertLayerProperties_MapDataWithoutMetaData_DefaultLabelLayerSetToLayer() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test data") + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData("test data") { Features = new[] { new MapFeature(Enumerable.Empty()) - { - MetaData = - { - { "Id", 1.1 }, - { "Name", "Feature" } - } - } }, - SelectedMetaDataAttribute = selectedMetaDataAttribute + SelectedMetaDataAttribute = "Name" }; - var layer = new MapPointLayer + var mapLayer = new TestFeatureLayer { DataSet = { @@ -268,28 +244,39 @@ }; // Call - testConverter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(mapData, mapLayer); // Assert - Assert.IsNotNull(layer.LabelLayer); - Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); - Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + Assert.IsNotNull(mapLayer.LabelLayer); + Assert.AreEqual("FID", mapLayer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(mapLayer.LabelLayer.Symbology.Categories[0].Expression); } [Test] - public void ConvertLayerProperties_MapDataWithoutMetaData_DefaultLabelLayerSetToLayer() + public void ConvertLayerProperties_MapDataWithMetaAndSelectedMetaDataAttributeInDataColumns_CustomLabelLayerSetToLayer() { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test data") + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData("test data") { Features = new[] { new MapFeature(Enumerable.Empty()) + { + MetaData = + { + { + "Id", 1.1 + }, + { + "Name", "Feature" + } + } + } }, SelectedMetaDataAttribute = "Name" }; - var layer = new MapPointLayer + var mapLayer = new TestFeatureLayer { DataSet = { @@ -305,21 +292,64 @@ }; // Call - testConverter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(mapData, mapLayer); // Assert - Assert.IsNotNull(layer.LabelLayer); - Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); - Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + Assert.IsNotNull(mapLayer.LabelLayer); + ILabelCategory labelCategory = mapLayer.LabelLayer.Symbology.Categories[0]; + Assert.AreEqual("FID", labelCategory.Symbolizer.PriorityField); + Assert.AreEqual(ContentAlignment.MiddleRight, labelCategory.Symbolizer.Orientation); + Assert.AreEqual(5, labelCategory.Symbolizer.OffsetX); + Assert.AreEqual(string.Format("[{0}]", "2"), labelCategory.Expression); } - [Test] - public void ConvertLayerProperties_MapDataWithMetaAndSelectedMetaDataAttributeInDataColumns_CustomLabelLayerSetToLayer() + [TestCase(true)] + [TestCase(false)] + public void ConvertLayerProperties_MapData_ShowLabelsSetToLayer(bool showLabels) { // Setup - var testConverter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test data") + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData("test data") { + ShowLabels = showLabels + }; + var mapLayer = new TestFeatureLayer(); + + // Call + testConverter.ConvertLayerProperties(mapData, mapLayer); + + // Assert + Assert.AreEqual(showLabels, mapLayer.ShowLabels); + } + + [TestCase(true)] + [TestCase(false)] + public void ConvertLayerProperties_MapData_IsVisibleSetToLayer(bool isVisible) + { + // Setup + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData("test data") + { + IsVisible = isVisible + }; + var mapLayer = new TestFeatureLayer(); + + // Call + testConverter.ConvertLayerProperties(mapData, mapLayer); + + // Assert + Assert.AreEqual(isVisible, mapLayer.IsVisible); + } + + [TestCase(null)] + [TestCase("")] + [TestCase("Unknown")] + public void ConvertLayerProperties_SelectedMetaDataAttributeEmptyOrUnknown_DefaultLabelLayerSetToLayer(string selectedMetaDataAttribute) + { + // Setup + var testConverter = new TestFeatureBasedMapDataConverter(); + var mapData = new TestFeatureBasedMapData("test data") + { Features = new[] { new MapFeature(Enumerable.Empty()) @@ -335,9 +365,9 @@ } } }, - SelectedMetaDataAttribute = "Name" + SelectedMetaDataAttribute = selectedMetaDataAttribute }; - var layer = new MapPointLayer + var mapLayer = new TestFeatureLayer { DataSet = { @@ -353,23 +383,25 @@ }; // Call - testConverter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(mapData, mapLayer); // Assert - Assert.IsNotNull(layer.LabelLayer); - ILabelCategory labelCategory = layer.LabelLayer.Symbology.Categories[0]; - Assert.AreEqual("FID", labelCategory.Symbolizer.PriorityField); - Assert.AreEqual(ContentAlignment.MiddleRight, labelCategory.Symbolizer.Orientation); - Assert.AreEqual(5, labelCategory.Symbolizer.OffsetX); - Assert.AreEqual(string.Format("[{0}]", "2"), labelCategory.Expression); + Assert.IsNotNull(mapLayer.LabelLayer); + Assert.AreEqual("FID", mapLayer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(mapLayer.LabelLayer.Symbology.Categories[0].Expression); } - private class Class : FeatureBasedMapData + private class TestFeatureBasedMapData : FeatureBasedMapData { - public Class(string name) : base(name) {} + public TestFeatureBasedMapData(string name) : base(name) {} } - private class TestFeatureBasedMapDataConverter : FeatureBasedMapDataConverter + private class TestFeatureLayer : MapPointLayer + { + public TestFeatureLayer() : base(new FeatureSet()) {} + } + + private class TestFeatureBasedMapDataConverter : FeatureBasedMapDataConverter where TFeatureBasedMapData : FeatureBasedMapData { protected override IFeatureSymbolizer CreateSymbolizer(TFeatureBasedMapData mapData) Index: Core/Components/test/Core.Components.DotSpatial.Test/Core.Components.DotSpatial.Test.csproj =================================================================== diff -u -racf1c815d99af1ce78dfd0b04b1949203c731803 -r0e524a720919848a33bb6bb331082c2d32ff1b5c --- Core/Components/test/Core.Components.DotSpatial.Test/Core.Components.DotSpatial.Test.csproj (.../Core.Components.DotSpatial.Test.csproj) (revision acf1c815d99af1ce78dfd0b04b1949203c731803) +++ Core/Components/test/Core.Components.DotSpatial.Test/Core.Components.DotSpatial.Test.csproj (.../Core.Components.DotSpatial.Test.csproj) (revision 0e524a720919848a33bb6bb331082c2d32ff1b5c) @@ -52,6 +52,10 @@ False ..\..\..\..\lib\DotSpatial.1.8\DotSpatial.Extensions.dll + + False + ..\..\..\..\bin\Debug\DotSpatial.Projections.dll + False ..\..\..\..\lib\DotSpatial.1.8\DotSpatial.Symbology.dll