Index: Core/Components/src/Core.Components.Gis/Data/FeatureBasedMapData.cs =================================================================== diff -u -rabc02e9330166ed14bdbbb095424ffc9e79a11b8 -r8d13dfd97d8d47ece688e76a53a691d133ae78d0 --- Core/Components/src/Core.Components.Gis/Data/FeatureBasedMapData.cs (.../FeatureBasedMapData.cs) (revision abc02e9330166ed14bdbbb095424ffc9e79a11b8) +++ Core/Components/src/Core.Components.Gis/Data/FeatureBasedMapData.cs (.../FeatureBasedMapData.cs) (revision 8d13dfd97d8d47ece688e76a53a691d133ae78d0) @@ -1,4 +1,4 @@ -// Copyright (C) Stichting Deltares 2018. All rights reserved. +// Copyright (C) Stichting Deltares 2018. All rights reserved. // // This file is part of Ringtoets. // @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Linq; using Core.Components.Gis.Features; +using Core.Components.Gis.Theme; namespace Core.Components.Gis.Data { @@ -104,4 +105,31 @@ } } } + + /// + /// Base class for which is based on an array of features + /// and has categorical theming. The features are defined in the RD-new coordinate system. + /// + /// The type of category theme. + public abstract class FeatureBasedMapData : FeatureBasedMapData + where TCategoryTheme : CategoryTheme + { + /// + /// Creates a new instance of . + /// + /// The name of the . + /// The + /// belonging to the . + /// Thrown when is + /// null or only whitespace. + protected FeatureBasedMapData(string name, MapTheme theme) : base(name) + { + Theme = theme; + } + + /// + /// Gets the that belongs to the map data. + /// + public MapTheme Theme { get; } + } } \ No newline at end of file Index: Core/Components/test/Core.Components.Gis.Test/Data/FeatureBasedMapDataTest.cs =================================================================== diff -u -rabc02e9330166ed14bdbbb095424ffc9e79a11b8 -r8d13dfd97d8d47ece688e76a53a691d133ae78d0 --- Core/Components/test/Core.Components.Gis.Test/Data/FeatureBasedMapDataTest.cs (.../FeatureBasedMapDataTest.cs) (revision abc02e9330166ed14bdbbb095424ffc9e79a11b8) +++ Core/Components/test/Core.Components.Gis.Test/Data/FeatureBasedMapDataTest.cs (.../FeatureBasedMapDataTest.cs) (revision 8d13dfd97d8d47ece688e76a53a691d133ae78d0) @@ -26,6 +26,8 @@ using Core.Components.Gis.Data; using Core.Components.Gis.Features; using Core.Components.Gis.Geometries; +using Core.Components.Gis.TestUtil; +using Core.Components.Gis.Theme; using NUnit.Framework; namespace Core.Components.Gis.Test.Data @@ -34,7 +36,7 @@ public class FeatureBasedMapDataTest { [Test] - public void Constructor_ValidName_NameAndDefaultValuesSet() + public void Constructor_ValidName_ExpectedValues() { // Setup const string name = "test data"; @@ -147,9 +149,39 @@ }, metaData); } + [Test] + public void TypedConstructor_WithCategoryThemes_ExpectedValues() + { + // Setup + const string name = "name"; + var mapTheme = new MapTheme("test", new[] + { + new TestCategoryTheme() + }); + + // Call + var data = new TypedTestFeatureBasedMapData(name, mapTheme); + + // Assert + Assert.IsInstanceOf(data); + Assert.AreEqual(name, data.Name); + Assert.AreSame(mapTheme, data.Theme); + } + private class TestFeatureBasedMapData : FeatureBasedMapData { public TestFeatureBasedMapData(string name) : base(name) {} } + + private class TypedTestFeatureBasedMapData : FeatureBasedMapData + { + public TypedTestFeatureBasedMapData(string name, MapTheme theme) + : base(name, theme) {} + } + + private class TestCategoryTheme : CategoryTheme + { + public TestCategoryTheme() : base(ValueCriterionTestFactory.CreateValueCriterion()) {} + } } } \ No newline at end of file