public void GivenMapPolygonDataLayer_WhenUpdatedAfterMapPolygonDataFeaturesChanged_MapPolygonDataLayerFeaturesChanged()
        {
            // Given
            var mapPolygonData = new MapPolygonData("Test name")
            {
                Features = new[]
                {
                    CreateTestMapFeature()
                }
            };

            var mapPolygonDataLayer = new MapPolygonDataLayer(mapPolygonData);

            IFeature[] drawnFeatures = mapPolygonDataLayer.DataSet.Features.ToArray();

            // When
            mapPolygonData.Features = new[]
            {
                CreateTestMapFeature()
            };
            mapPolygonDataLayer.Update();

            // Then
            CollectionAssert.AreNotEqual(drawnFeatures, mapPolygonDataLayer.DataSet.Features);
        }
        private static void AssertMapPolygonDataLayerDefaultProperties(MapPolygonDataLayer mapPolygonDataLayer)
        {
            Assert.AreEqual("Test name", mapPolygonDataLayer.Name);
            Assert.IsTrue(mapPolygonDataLayer.IsVisible);
            Assert.IsFalse(mapPolygonDataLayer.ShowLabels);

            Assert.IsNotNull(mapPolygonDataLayer.LabelLayer);
            Assert.IsNull(mapPolygonDataLayer.LabelLayer.Symbology.Categories[0].Expression);

            var firstPattern = (SimplePattern)mapPolygonDataLayer.Symbolizer.Patterns[0];

            Assert.AreEqual(2, firstPattern.Outline.GetWidth());

            Assert.AreEqual(0, mapPolygonDataLayer.DataSet.Features.Count);
        }
        public void Constructor_MapPolygonDataWithTestProperties_MapPolygonDataLayerCreatedAccordingly()
        {
            // Setup
            var mapPolygonData = new MapPolygonData("Test name", new PolygonStyle
            {
                FillColor       = Color.AliceBlue,
                StrokeColor     = Color.Azure,
                StrokeThickness = 2
            });

            SetMapPolygonDataTestProperties(mapPolygonData);

            // Call
            var mapPolygonDataLayer = new MapPolygonDataLayer(mapPolygonData);

            // Assert
            Assert.IsInstanceOf <MapPolygonLayer>(mapPolygonDataLayer);
            Assert.IsInstanceOf <IFeatureBasedMapDataLayer>(mapPolygonDataLayer);
            AssertMapPolygonDataLayerTestProperties(mapPolygonDataLayer);
            Assert.AreEqual(KnownCoordinateSystems.Projected.NationalGrids.Rijksdriehoekstelsel, mapPolygonDataLayer.Projection);
        }
        public void Update_MapPolygonDataWithTestProperties_MapPolygonDataLayerUpdatedAccordingly()
        {
            // Setup
            var mapPolygonData = new MapPolygonData("Test name", new PolygonStyle
            {
                FillColor       = Color.AliceBlue,
                StrokeColor     = Color.Azure,
                StrokeThickness = 2
            });
            var mapPolygonDataLayer = new MapPolygonDataLayer(mapPolygonData);

            SetMapPolygonDataTestProperties(mapPolygonData);

            // Precondition
            AssertMapPolygonDataLayerDefaultProperties(mapPolygonDataLayer);

            // Call
            mapPolygonDataLayer.Update();

            // Assert
            AssertMapPolygonDataLayerTestProperties(mapPolygonDataLayer);
        }