Index: Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs =================================================================== diff -u -r2737a3a45f330d73b3201c474ee75e7e4bfa3b2f -r72b0b9489dd743b6a2a3c80ccc42ae5a9ad203ae --- Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision 2737a3a45f330d73b3201c474ee75e7e4bfa3b2f) +++ Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision 72b0b9489dd743b6a2a3c80ccc42ae5a9ad203ae) @@ -21,11 +21,14 @@ using System; using System.Collections.Generic; +using System.Drawing; +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; using DotSpatial.Controls; using DotSpatial.Data; using DotSpatial.Symbology; @@ -201,12 +204,12 @@ { // Setup var name = ""; - var converter = new TestFeatureBasedMapDataConverter(); + var testConverter = new TestFeatureBasedMapDataConverter(); var data = new Class(name); var layer = new MapPointLayer(); // Call - converter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(data, layer); // Assert Assert.AreEqual(name, layer.Name); @@ -217,15 +220,15 @@ public void ConvertLayerProperties_MapData_ShowLabelsSetToLayer(bool showLabels) { // Setup - var converter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test") + var testConverter = new TestFeatureBasedMapDataConverter(); + var data = new Class("test data") { ShowLabels = showLabels }; var layer = new MapPointLayer(); // Call - converter.ConvertLayerProperties(data, layer); + testConverter.ConvertLayerProperties(data, layer); // Assert Assert.AreEqual(showLabels, layer.ShowLabels); @@ -236,20 +239,181 @@ public void ConvertLayerProperties_MapData_IsVisibleSetToLayer(bool isVisible) { // Setup - var converter = new TestFeatureBasedMapDataConverter(); - var data = new Class("test") + var testConverter = new TestFeatureBasedMapDataConverter(); + var data = new Class("test data") { IsVisible = isVisible }; var layer = new MapPointLayer(); // Call - converter.ConvertLayerProperties(data, layer); + 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") + { + Features = new[] + { + new MapFeature(Enumerable.Empty()) + { + MetaData = + { + { "Id", 1.1 }, + { "Name", "Feature" } + } + } + }, + SelectedMetaDataAttribute = "Name" + }; + var layer = new MapPointLayer(); + + // Call + testConverter.ConvertLayerProperties(data, layer); + + // Assert + Assert.IsNotNull(layer.LabelLayer); + Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + } + + [TestCase(null)] + [TestCase("")] + [TestCase("Unknown")] + public void ConvertLayerProperties_SelectedMetaDataAttributeEmptyOrUnknown_DefaultLabelLayerSetToLayer(string selectedMetaDataAttribute) + { + // Setup + var testConverter = new TestFeatureBasedMapDataConverter(); + var data = new Class("test data") + { + Features = new[] + { + new MapFeature(Enumerable.Empty()) + { + MetaData = + { + { "Id", 1.1 }, + { "Name", "Feature" } + } + } + }, + SelectedMetaDataAttribute = selectedMetaDataAttribute + }; + var layer = new MapPointLayer + { + DataSet = + { + DataTable = + { + Columns = + { + "1", + "2" + } + } + } + }; + + // Call + testConverter.ConvertLayerProperties(data, layer); + + // Assert + Assert.IsNotNull(layer.LabelLayer); + Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + } + + [Test] + public void ConvertLayerProperties_MapDataWithoutMetaData_DefaultLabelLayerSetToLayer() + { + // Setup + var testConverter = new TestFeatureBasedMapDataConverter(); + var data = new Class("test data") + { + Features = new[] + { + new MapFeature(Enumerable.Empty()) + }, + SelectedMetaDataAttribute = "Name" + }; + var layer = new MapPointLayer + { + DataSet = + { + DataTable = + { + Columns = + { + "1", + "2" + } + } + } + }; + + // Call + testConverter.ConvertLayerProperties(data, layer); + + // Assert + Assert.IsNotNull(layer.LabelLayer); + Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + } + + [Test] + public void ConvertLayerProperties_MapDataWithMetaAndSelectedMetaDataAttributeInDataColumns_CustomLabelLayerSetToLayer() + { + // Setup + var testConverter = new TestFeatureBasedMapDataConverter(); + var data = new Class("test data") + { + Features = new[] + { + new MapFeature(Enumerable.Empty()) + { + MetaData = + { + { "Id", 1.1 }, + { "Name", "Feature" } + } + } + }, + SelectedMetaDataAttribute = "Name" + }; + var layer = new MapPointLayer + { + DataSet = + { + DataTable = + { + Columns = + { + "1", + "2" + } + } + } + }; + + // Call + testConverter.ConvertLayerProperties(data, layer); + + // 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); + } + private class Class : FeatureBasedMapData { public Class(string name) : base(name) {} Index: Core/Components/test/Core.Components.DotSpatial.Test/Converter/MapLineDataConverterTest.cs =================================================================== diff -u -r2737a3a45f330d73b3201c474ee75e7e4bfa3b2f -r72b0b9489dd743b6a2a3c80ccc42ae5a9ad203ae --- Core/Components/test/Core.Components.DotSpatial.Test/Converter/MapLineDataConverterTest.cs (.../MapLineDataConverterTest.cs) (revision 2737a3a45f330d73b3201c474ee75e7e4bfa3b2f) +++ Core/Components/test/Core.Components.DotSpatial.Test/Converter/MapLineDataConverterTest.cs (.../MapLineDataConverterTest.cs) (revision 72b0b9489dd743b6a2a3c80ccc42ae5a9ad203ae) @@ -21,7 +21,6 @@ using System; using System.Collections.Generic; -using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; @@ -187,138 +186,6 @@ } [Test] - public void Convert_RandomLineDataWithoutAttributes_ReturnsNewMapLineLayerWithDefaultLabelLayer() - { - // Setup - var converter = new MapLineDataConverter(); - var random = new Random(21); - MapFeature[] features = - { - new MapFeature(new[] - { - new MapGeometry(new[] - { - new[] - { - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()) - } - }) - }) - }; - - var lineData = new MapLineData("test data") - { - Features = features - }; - - // Call - IMapFeatureLayer layer = converter.Convert(lineData); - - // Assert - CollectionAssert.IsEmpty(layer.DataSet.GetColumns()); - - Assert.IsNotNull(layer.LabelLayer); - Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); - Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); - } - - [Test] - public void Convert_RandomLineDataWithAttributes_ReturnsNewMapPointLayerWithDefaultLabelLayer() - { - // Setup - var converter = new MapLineDataConverter(); - var random = new Random(21); - var features = new MapFeature[1]; - - var mapFeature = new MapFeature(new[] - { - new MapGeometry(new[] - { - new[] - { - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()) - } - }) - }); - mapFeature.MetaData["ID"] = random.NextDouble(); - mapFeature.MetaData["Name"] = "feature"; - - features[0] = mapFeature; - - var lineData = new MapLineData("test data") - { - Features = features - }; - - // Call - IMapFeatureLayer layer = converter.Convert(lineData); - - // Assert - DataColumn[] dataColumns = layer.DataSet.GetColumns(); - Assert.AreEqual(2, dataColumns.Length); - Assert.AreEqual("1", dataColumns[0].ColumnName); - Assert.AreEqual("2", dataColumns[1].ColumnName); - - Assert.IsNotNull(layer.LabelLayer); - Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); - Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); - } - - [Test] - [TestCase("ID", 1)] - [TestCase("Name", 2)] - public void Convert_RandomLineDataWithAttributesShowLabelsTrue_ReturnsNewMapLineLayerWithCustomLabelLayer(string selectedAttribute, int selectedAttributeId) - { - // Setup - var converter = new MapLineDataConverter(); - var random = new Random(21); - var features = new MapFeature[1]; - - var mapFeature = new MapFeature(new[] - { - new MapGeometry(new[] - { - new[] - { - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()), - new Point2D(random.NextDouble(), random.NextDouble()) - } - }) - }); - mapFeature.MetaData["ID"] = random.NextDouble(); - mapFeature.MetaData["Name"] = "feature"; - - features[0] = mapFeature; - - var lineData = new MapLineData("test data") - { - Features = features, - SelectedMetaDataAttribute = selectedAttribute - }; - - // Call - IMapFeatureLayer layer = converter.Convert(lineData); - - // Assert - DataColumn[] dataColumns = layer.DataSet.GetColumns(); - Assert.AreEqual(2, dataColumns.Length); - Assert.AreEqual("1", dataColumns[0].ColumnName); - Assert.AreEqual("2", dataColumns[1].ColumnName); - - 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}]", selectedAttributeId), labelCategory.Expression); - } - - [Test] [TestCase(KnownColor.AliceBlue)] [TestCase(KnownColor.Azure)] [TestCase(KnownColor.Beige)] Index: Core/Components/test/Core.Components.DotSpatial.Test/Core.Components.DotSpatial.Test.csproj =================================================================== diff -u -rd72d28f9d51c5bc4c7bb0f49509e3656465cc22c -r72b0b9489dd743b6a2a3c80ccc42ae5a9ad203ae --- Core/Components/test/Core.Components.DotSpatial.Test/Core.Components.DotSpatial.Test.csproj (.../Core.Components.DotSpatial.Test.csproj) (revision d72d28f9d51c5bc4c7bb0f49509e3656465cc22c) +++ Core/Components/test/Core.Components.DotSpatial.Test/Core.Components.DotSpatial.Test.csproj (.../Core.Components.DotSpatial.Test.csproj) (revision 72b0b9489dd743b6a2a3c80ccc42ae5a9ad203ae) @@ -73,6 +73,7 @@ +