Index: Core/Components/src/Core.Components.BruTile/Configurations/WellKnownTileSourceLayerConfiguration.cs
===================================================================
diff -u -rc7dcfeb120035a08adfe115275512e1e6c5b4931 -ra0472622d9281a2a4637951a63c96994465357b3
--- Core/Components/src/Core.Components.BruTile/Configurations/WellKnownTileSourceLayerConfiguration.cs (.../WellKnownTileSourceLayerConfiguration.cs) (revision c7dcfeb120035a08adfe115275512e1e6c5b4931)
+++ Core/Components/src/Core.Components.BruTile/Configurations/WellKnownTileSourceLayerConfiguration.cs (.../WellKnownTileSourceLayerConfiguration.cs) (revision a0472622d9281a2a4637951a63c96994465357b3)
@@ -25,6 +25,7 @@
using BruTile.Predefined;
using BruTile.Web;
using Core.Components.BruTile.Data;
+using Core.Components.Gis.Data;
using Core.Components.Gis.Exceptions;
namespace Core.Components.BruTile.Configurations
@@ -91,6 +92,47 @@
return new WellKnownTileSourceLayerConfiguration(knownTileSource, tileSource);
}
+ ///
+ /// Creates a fully initialized instance of .
+ ///
+ /// The tile provider to be used.
+ /// The new .
+ /// Thrown when
+ /// isn't a supported member.
+ /// Thrown when creating the file
+ /// cache failed.
+ public static WellKnownTileSourceLayerConfiguration CreateInitializedConfiguration(WellKnownTileSource wellKnownTileSource)
+ {
+ return CreateInitializedConfiguration(WellKnownTileSourceToKnownTileSource(wellKnownTileSource));
+ }
+
+ ///
+ /// Returns the equivalent of .
+ ///
+ ///
+ /// The equivalent of the .
+ /// Thrown when
+ /// is not a supported member.
+ public static KnownTileSource WellKnownTileSourceToKnownTileSource(WellKnownTileSource wellKnownTileSource)
+ {
+ switch (wellKnownTileSource) {
+ case WellKnownTileSource.BingAerial:
+ return KnownTileSource.BingAerial;
+ case WellKnownTileSource.BingHybrid:
+ return KnownTileSource.BingHybrid;
+ case WellKnownTileSource.BingRoads:
+ return KnownTileSource.BingRoads;
+ case WellKnownTileSource.EsriWorldTopo:
+ return KnownTileSource.EsriWorldTopo;
+ case WellKnownTileSource.EsriWorldShadedRelief:
+ return KnownTileSource.EsriWorldShadedRelief;
+ case WellKnownTileSource.OpenStreetMap:
+ return KnownTileSource.OpenStreetMap;
+ default:
+ throw new NotSupportedException($"Unknown value '{wellKnownTileSource}' for '{nameof(wellKnownTileSource)}'");
+ }
+ }
+
public override IConfiguration Clone()
{
ThrowExceptionIfDisposed();
Index: Core/Components/test/Core.Components.BruTile.Test/Configurations/WellKnownTileSourceLayerConfigurationTest.cs
===================================================================
diff -u -r99f9004206bfb9de084275d749b7aeccafd6da18 -ra0472622d9281a2a4637951a63c96994465357b3
--- Core/Components/test/Core.Components.BruTile.Test/Configurations/WellKnownTileSourceLayerConfigurationTest.cs (.../WellKnownTileSourceLayerConfigurationTest.cs) (revision 99f9004206bfb9de084275d749b7aeccafd6da18)
+++ Core/Components/test/Core.Components.BruTile.Test/Configurations/WellKnownTileSourceLayerConfigurationTest.cs (.../WellKnownTileSourceLayerConfigurationTest.cs) (revision a0472622d9281a2a4637951a63c96994465357b3)
@@ -24,6 +24,7 @@
using BruTile.Predefined;
using Core.Components.BruTile.Configurations;
using Core.Components.BruTile.IO;
+using Core.Components.Gis.Data;
using NUnit.Framework;
namespace Core.Components.BruTile.Test.Configurations
@@ -35,7 +36,7 @@
public void CreateInitializedConfiguration_InvalidKnownTileSource_ThrowNotSupportedException()
{
// Setup
- var invalidValue = (KnownTileSource) 9999;
+ const KnownTileSource invalidValue = (KnownTileSource) 9999;
// Call
TestDelegate call = () => WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration(invalidValue);
@@ -45,6 +46,32 @@
}
[Test]
+ public void WellKnownTileSourceToKnownTileSource_InvalidWellKnownTileSource_ThrowsNotSupportedException()
+ {
+ // Setup
+ const WellKnownTileSource invalidValue = (WellKnownTileSource) 9999;
+
+ // Call
+ TestDelegate call = () => WellKnownTileSourceLayerConfiguration.WellKnownTileSourceToKnownTileSource(invalidValue);
+
+ // Assert
+ string message = Assert.Throws(call).Message;
+ Assert.AreEqual($"Unknown value '{invalidValue}' for 'wellKnownTileSource'", message);
+ }
+
+ [Test]
+ [TestCaseSource(nameof(ValidWellKnownTileSourceToCorrespondingKnownTileSource))]
+ public void WellKnownTileSourceToKnownTileSource_ValidWellKnownTileSource_ReturnsCorrespondingKnownTileSource(
+ WellKnownTileSource wellKnownTileSource, KnownTileSource expectedKnownTileSource)
+ {
+ // Call
+ KnownTileSource knownTileSource = WellKnownTileSourceLayerConfiguration.WellKnownTileSourceToKnownTileSource(wellKnownTileSource);
+
+ // Assert
+ Assert.AreEqual(expectedKnownTileSource, knownTileSource);
+ }
+
+ [Test]
public void GivenAllAvailableKnownTileSources_WhenCreatingInitializedConfiguration_ThenConfigurationHasExpectedValues()
{
// Given
@@ -133,8 +160,21 @@
Assert.AreEqual("WellKnownTileSourceLayerConfiguration", objectName);
}
- private void AssertAttribution(Attribution expectedAttribution, Attribution actualAttribution)
+ private static TestCaseData[] ValidWellKnownTileSourceToCorrespondingKnownTileSource()
{
+ return new[]
+ {
+ new TestCaseData(WellKnownTileSource.EsriWorldTopo, KnownTileSource.EsriWorldTopo),
+ new TestCaseData(WellKnownTileSource.EsriWorldShadedRelief, KnownTileSource.EsriWorldShadedRelief),
+ new TestCaseData(WellKnownTileSource.BingAerial, KnownTileSource.BingAerial),
+ new TestCaseData(WellKnownTileSource.BingHybrid, KnownTileSource.BingHybrid),
+ new TestCaseData(WellKnownTileSource.BingRoads, KnownTileSource.BingRoads),
+ new TestCaseData(WellKnownTileSource.OpenStreetMap, KnownTileSource.OpenStreetMap)
+ };
+ }
+
+ private static void AssertAttribution(Attribution expectedAttribution, Attribution actualAttribution)
+ {
if (expectedAttribution == null)
{
Assert.IsNull(actualAttribution);
Index: Core/Components/test/Core.Components.DotSpatial.Forms.Test/MapControlTest.cs
===================================================================
diff -u -ra23d8fd94a47ec519194793bc559b0b86de509fd -ra0472622d9281a2a4637951a63c96994465357b3
--- Core/Components/test/Core.Components.DotSpatial.Forms.Test/MapControlTest.cs (.../MapControlTest.cs) (revision a23d8fd94a47ec519194793bc559b0b86de509fd)
+++ Core/Components/test/Core.Components.DotSpatial.Forms.Test/MapControlTest.cs (.../MapControlTest.cs) (revision a0472622d9281a2a4637951a63c96994465357b3)
@@ -1426,8 +1426,7 @@
yield return new TestCaseData(factoryThrowingCannotFindTileSourceException)
.SetName($"{prefix}: Tile source factory throws CannotFindTileSourceException.");
}
-
-
+
#endregion
#endregion