public void DynamicVisibleValidationMethod_MapPointDataWithMapTheme_ReturnsExpectedValuesForRelevantProperties(bool hasMapTheme)
        {
            // Setup
            MapPointData mapPointData = hasMapTheme
                                            ? new MapPointData("Test", new PointStyle(), CreateMapTheme())
                                            : new MapPointData("Test");

            var properties = new MapPointDataProperties(mapPointData, Enumerable.Empty <MapDataCollection>());

            // Call
            bool isCategoryThemesVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapLineDataProperties.CategoryThemes));
            bool isColorVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapPointDataProperties.Color));
            bool isStrokeColorVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapPointDataProperties.StrokeColor));
            bool isStrokeThicknessVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapPointDataProperties.StrokeThickness));
            bool isSizeVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapPointDataProperties.Size));
            bool isSymbolVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapPointDataProperties.Symbol));

            // Assert
            Assert.AreEqual(hasMapTheme, isCategoryThemesVisible);
            Assert.AreNotEqual(hasMapTheme, isColorVisible);
            Assert.AreNotEqual(hasMapTheme, isStrokeColorVisible);
            Assert.AreNotEqual(hasMapTheme, isStrokeThicknessVisible);
            Assert.AreNotEqual(hasMapTheme, isSizeVisible);
            Assert.AreNotEqual(hasMapTheme, isSymbolVisible);
        }
        public void DynamicVisibleValidationMethod_ShowLabels_ReturnsExpectedValuesForRelevantProperties(bool showLabels)
        {
            // Setup
            var mapPointData = new MapPointData("Test")
            {
                ShowLabels = showLabels
            };

            var properties = new MapPointDataProperties(mapPointData, Enumerable.Empty <MapDataCollection>());

            // Call
            bool isSelectedMetaDataAttributeVisible = properties.DynamicVisibleValidationMethod(
                nameof(MapPointDataProperties.SelectedMetaDataAttribute));

            // Assert
            Assert.AreEqual(showLabels, isSelectedMetaDataAttributeVisible);
        }
        public void DynamicVisibleValidationMethod_AnyOtherProperty_ReturnsTrue()
        {
            // Setup
            var mapPointData = new MapPointData("Test", new PointStyle(), CreateMapTheme())
            {
                Features = new[]
                {
                    new MapFeature(Enumerable.Empty <MapGeometry>())
                },
                ShowLabels = true
            };

            var properties = new MapPointDataProperties(mapPointData, Enumerable.Empty <MapDataCollection>());

            // Call
            bool isOtherPropertyVisible = properties.DynamicVisibleValidationMethod(string.Empty);

            // Assert
            Assert.IsFalse(isOtherPropertyVisible);
        }