Index: test/Common/SharpMap.UI.Tests/Tools/SelectToolTest.cs =================================================================== diff -u -r2a6b0940219617175db03cf0612e76991780d274 -r5fc71a385897af92ccb092f2f969b5709afab85a --- test/Common/SharpMap.UI.Tests/Tools/SelectToolTest.cs (.../SelectToolTest.cs) (revision 2a6b0940219617175db03cf0612e76991780d274) +++ test/Common/SharpMap.UI.Tests/Tools/SelectToolTest.cs (.../SelectToolTest.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -24,20 +24,38 @@ { var featureProvider = new FeatureCollection { - Features = { new Feature { Geometry = new WKTReader().Read("POINT(0 0)") } } + Features = + { + new Feature + { + Geometry = new WKTReader().Read("POINT(0 0)") + } + } }; - var layer = new VectorLayer { DataSource = featureProvider }; + var layer = new VectorLayer + { + DataSource = featureProvider + }; - using (var mapControl = new MapControl { Map = { Layers = { layer } } }) + using (var mapControl = new MapControl { + Map = + { + Layers = + { + layer + } + } + }) + { var selectTool = mapControl.SelectTool; selectTool.Select(featureProvider.Features.Cast()); mapControl.Map.Layers.Clear(); selectTool.Selection - .Should("selection is cleared on layer remove").Be.Empty(); + .Should("selection is cleared on layer remove").Be.Empty(); } } @@ -46,21 +64,45 @@ { var featureProvider = new FeatureCollection { - Features = { new Feature { Geometry = new WKTReader().Read("POINT(0 0)") } } + Features = + { + new Feature + { + Geometry = new WKTReader().Read("POINT(0 0)") + } + } }; - var layer = new VectorLayer { DataSource = featureProvider }; - var groupLayer = new GroupLayer { Layers = { layer } }; + var layer = new VectorLayer + { + DataSource = featureProvider + }; + var groupLayer = new GroupLayer + { + Layers = + { + layer + } + }; - using (var mapControl = new MapControl { Map = { Layers = { groupLayer } } }) + using (var mapControl = new MapControl { + Map = + { + Layers = + { + groupLayer + } + } + }) + { var selectTool = mapControl.SelectTool; selectTool.Select(featureProvider.Features.Cast()); mapControl.Map.Layers.Remove(groupLayer); selectTool.Selection - .Should("selection is cleared on layer remove").Be.Empty(); + .Should("selection is cleared on layer remove").Be.Empty(); } } @@ -69,7 +111,7 @@ { var mapControl = new MapControl(); var selectTool = mapControl.SelectTool; - + selectTool.MultiSelectionMode = MultiSelectionMode.Lasso; mapControl.ActivateTool(selectTool); @@ -87,7 +129,7 @@ var layer1 = new VectorLayer(); var layer1Data = new FeatureCollection(); layer1.DataSource = layer1Data; - layer1Data.FeatureType = typeof (Feature); + layer1Data.FeatureType = typeof(Feature); layer1Data.Add(new Point(5, 5)); layer1Data.Add(new Point(1, 1)); @@ -141,8 +183,8 @@ mapControl.Map.Layers.Add(layer2); // zoom 4x because the limit (10 pixels around coordinate) used for finding the next feature depends on world to pixel ratio - mapControl.Map.Zoom = mapControl.Map.Zoom * 4; - + mapControl.Map.Zoom = mapControl.Map.Zoom*4; + var items = mapControl.SelectTool.GetContextMenuItems(new Coordinate(4, 4)); var mapToolContextMenuItem = items.FirstOrDefault(); @@ -151,7 +193,7 @@ var dropDownItems = mapToolContextMenuItem.MenuItem.DropDownItems; Assert.AreEqual(3, dropDownItems.Count); - + layer2.Visible = false; items = mapControl.SelectTool.GetContextMenuItems(new Coordinate(4, 4)); @@ -170,8 +212,14 @@ var mapControl = new MapControl(); var layerData = new FeatureCollection(); - var layer = new VectorLayer {Visible = false, DataSource = layerData}; - var feature = new TestFeature {Geometry = new Point(0, 0)}; + var layer = new VectorLayer + { + Visible = false, DataSource = layerData + }; + var feature = new TestFeature + { + Geometry = new Point(0, 0) + }; layerData.FeatureType = typeof(TestFeature); layerData.Add(feature); @@ -183,16 +231,25 @@ Assert.AreEqual(0, mapControl.SelectTool.Selection.Count(), "No features should be added as none are passed"); - mapControl.SelectTool.AddSelection(new[] { feature }); + mapControl.SelectTool.AddSelection(new[] + { + feature + }); Assert.AreEqual(0, mapControl.SelectTool.Selection.Count(), "No features should be added as none are visible"); layer.Visible = true; - mapControl.SelectTool.AddSelection(new[] { feature }); + mapControl.SelectTool.AddSelection(new[] + { + feature + }); Assert.AreEqual(1, mapControl.SelectTool.Selection.Count()); - mapControl.SelectTool.AddSelection(new[] { feature }); + mapControl.SelectTool.AddSelection(new[] + { + feature + }); Assert.AreEqual(1, mapControl.SelectTool.Selection.Count(), "Should not expand selection with items that are already selected"); } @@ -201,9 +258,15 @@ public void SetLayerWithManySelectedFeaturesVisibilityFalseShouldBeFast() { var mapControl = new MapControl(); - var features = Enumerable.Range(0, 10000).Select(i => new TestFeature {Geometry = new Point(i, i)}).ToList(); + var features = Enumerable.Range(0, 10000).Select(i => new TestFeature + { + Geometry = new Point(i, i) + }).ToList(); var layerData = new FeatureCollection(features, typeof(TestFeature)); - var vectorLayer = new VectorLayer {Visible = true, DataSource = layerData}; + var vectorLayer = new VectorLayer + { + Visible = true, DataSource = layerData + }; mapControl.Map.Layers.Add(vectorLayer); mapControl.SelectTool.AddSelection(features.Take(5000)); @@ -222,23 +285,50 @@ { Features = { - new Feature { Geometry = new WKTReader().Read("POINT(0 0)") }, - new Feature { Geometry = new WKTReader().Read("POINT(0 1)") }, - new Feature { Geometry = new WKTReader().Read("POINT(0 2)") } + new Feature + { + Geometry = new WKTReader().Read("POINT(0 0)") + }, + new Feature + { + Geometry = new WKTReader().Read("POINT(0 1)") + }, + new Feature + { + Geometry = new WKTReader().Read("POINT(0 2)") + } } }; - var layer1 = new VectorLayer { DataSource = featureProvider1 }; + var layer1 = new VectorLayer + { + DataSource = featureProvider1 + }; var featureProvider2 = new FeatureCollection { Features = { - new Feature { Geometry = new WKTReader().Read("POINT(1 0)") }, + new Feature + { + Geometry = new WKTReader().Read("POINT(1 0)") + }, } }; - var layer2 = new VectorLayer { DataSource = featureProvider2 }; + var layer2 = new VectorLayer + { + DataSource = featureProvider2 + }; - using (var mapControl = new MapControl { Map = { Layers = { layer1, layer2 } } }) + using (var mapControl = new MapControl { + Map = + { + Layers = + { + layer1, layer2 + } + } + }) + { var selectTool = mapControl.SelectTool; var listOfSelectedFeatures = new[] @@ -251,34 +341,61 @@ selectTool.Select(listOfSelectedFeatures.Cast()); selectTool.Selection.Count() - .Should("selection are 3 features in 2 layers, 2 features in layer1, 1 feature in layer 2").Be.EqualTo(3); + .Should("selection are 3 features in 2 layers, 2 features in layer1, 1 feature in layer 2").Be.EqualTo(3); } } - + [Test] public void SelectionMultipleFeaturesInMultipleLayersOnOnlyOneLayer() { var featureProvider1 = new FeatureCollection { Features = { - new Feature { Geometry = new WKTReader().Read("POINT(0 0)") }, - new Feature { Geometry = new WKTReader().Read("POINT(0 1)") }, - new Feature { Geometry = new WKTReader().Read("POINT(0 2)") } + new Feature + { + Geometry = new WKTReader().Read("POINT(0 0)") + }, + new Feature + { + Geometry = new WKTReader().Read("POINT(0 1)") + }, + new Feature + { + Geometry = new WKTReader().Read("POINT(0 2)") + } } }; - var layer1 = new VectorLayer { DataSource = featureProvider1 }; + var layer1 = new VectorLayer + { + DataSource = featureProvider1 + }; var featureProvider2 = new FeatureCollection { Features = { - new Feature { Geometry = new WKTReader().Read("POINT(1 0)") }, + new Feature + { + Geometry = new WKTReader().Read("POINT(1 0)") + }, } }; - var layer2 = new VectorLayer { DataSource = featureProvider2 }; + var layer2 = new VectorLayer + { + DataSource = featureProvider2 + }; - using (var mapControl = new MapControl { Map = { Layers = { layer1, layer2 } } }) + using (var mapControl = new MapControl { + Map = + { + Layers = + { + layer1, layer2 + } + } + }) + { var selectTool = mapControl.SelectTool; var listOfSelectedFeatures = new[] @@ -291,12 +408,12 @@ selectTool.Select(listOfSelectedFeatures.Cast(), layer1); selectTool.Selection.Count() - .Should("selection are 3 features in 2 layers, but only select the 2 features in layer1!").Be.EqualTo(2); - + .Should("selection are 3 features in 2 layers, but only select the 2 features in layer1!").Be.EqualTo(2); + selectTool.Select(listOfSelectedFeatures.Cast(), layer2); selectTool.Selection.Count() - .Should("selection are 3 features in 2 layers, but only select the 1 feature in layer2!").Be.EqualTo(1); + .Should("selection are 3 features in 2 layers, but only select the 1 feature in layer2!").Be.EqualTo(1); } } @@ -309,19 +426,40 @@ var maxSelectableFeatures = SelectTool.MaxSelectedFeatures; var featureProvider1 = new FeatureCollection( Enumerable.Range(0, maxSelectableFeatures*2/3) - .Select(i => new Feature {Geometry = new WKTReader().Read("POINT(0 " + i + ")")}).ToList(), - typeof (Feature)); + .Select(i => new Feature + { + Geometry = new WKTReader().Read("POINT(0 " + i + ")") + }).ToList(), + typeof(Feature)); - var layer1 = new VectorLayer { DataSource = featureProvider1 }; + var layer1 = new VectorLayer + { + DataSource = featureProvider1 + }; var featureProvider2 = new FeatureCollection( Enumerable.Range(0, maxSelectableFeatures*2/3) - .Select(i => new Feature {Geometry = new WKTReader().Read("POINT(1 " + i + ")")}).ToList(), - typeof (Feature)); - var layer2 = new VectorLayer { DataSource = featureProvider2 }; + .Select(i => new Feature + { + Geometry = new WKTReader().Read("POINT(1 " + i + ")") + }).ToList(), + typeof(Feature)); + var layer2 = new VectorLayer + { + DataSource = featureProvider2 + }; - using (var mapControl = new MapControl { Map = { Layers = { layer1, layer2 } } }) + using (var mapControl = new MapControl { + Map = + { + Layers = + { + layer1, layer2 + } + } + }) + { var selectTool = mapControl.SelectTool; IEnumerable listOfSelectedFeatures = @@ -333,13 +471,10 @@ var message = string.Format("selection are all {1} features in 2 layers, but only select the first {0} features!", maxSelectableFeatures, ofSelectedFeatures.Count()); selectTool.Selection.Count() - .Should(message).Be.EqualTo(maxSelectableFeatures); + .Should(message).Be.EqualTo(maxSelectableFeatures); } } - private class TestFeature : Feature - { - - } + private class TestFeature : Feature {} } -} +} \ No newline at end of file