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