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