/// <summary>
        /// Creates a new initialized <see cref="WellKnownTileSourceLayerConfiguration"/>.
        /// </summary>
        /// <param name="wellKnownBackgroundMapData">The <see cref="WellKnownTileSourceMapData"/>
        /// to create the configuration for.</param>
        /// <returns>A new initialized <see cref="WellKnownTileSourceLayerConfiguration"/>.</returns>
        /// <exception cref="ConfigurationInitializationException">Thrown when the configuration
        /// can't connect with the tile service or creating the file cache failed.</exception>
        private static WellKnownTileSourceLayerConfiguration CreateInitializedConfiguration(WellKnownTileSourceMapData wellKnownBackgroundMapData)
        {
            try
            {
                return(WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration(wellKnownBackgroundMapData.TileSource));
            }
            catch (NotSupportedException e)
            {
                string tileDisplayName;
                try
                {
                    tileDisplayName = TypeUtils.GetDisplayName(wellKnownBackgroundMapData.TileSource);
                }
                catch (InvalidEnumArgumentException)
                {
                    tileDisplayName = wellKnownBackgroundMapData.TileSource.ToString();
                }

                throw new ConfigurationInitializationException(
                          string.Format(Resources.TryCreateInitializedConfiguration_InitializeBackgroundLayer_Connect_to_TileSourceName_0_failed,
                                        tileDisplayName),
                          e);
            }
            catch (CannotCreateTileCacheException e)
            {
                throw new ConfigurationInitializationException(
                          Resources.TryCreateInitializedConfiguration_InitializeBackgroundLayer_Persistent_cache_creation_failed,
                          e);
            }
        }
Ejemplo n.º 2
0
        public void CreateInitializedConfiguration_InvalidWellKnownTileSource_ThrowsInvalidEnumArgumentException()
        {
            // Setup
            const int invalidTileSource = 9999;

            // Call
            TestDelegate call = () => WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration((WellKnownTileSource)invalidTileSource);

            // Assert
            string expectedMessage = $"The value of argument 'wellKnownTileSource' ({invalidTileSource}) is invalid for Enum type '{nameof(WellKnownTileSource)}'.";
            string parameterName   = TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(call, expectedMessage).ParamName;

            Assert.AreEqual("wellKnownTileSource", parameterName);
        }
Ejemplo n.º 3
0
        public void Initialize_ConfigurationDisposed_ThrowObjectDisposedException()
        {
            // Setup
            using (new UseCustomSettingsHelper(testSettingsHelper))
                using (new UseCustomTileSourceFactoryConfig(new WellKnownTileSourceMapData(WellKnownTileSource.BingAerial)))
                {
                    WellKnownTileSourceLayerConfiguration configuration = WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration(WellKnownTileSource.BingAerial);
                    configuration.Dispose();

                    // Call
                    TestDelegate call = () => configuration.Initialize();

                    // Assert
                    string objectName = Assert.Throws <ObjectDisposedException>(call).ObjectName;
                    Assert.AreEqual("WellKnownTileSourceLayerConfiguration", objectName);
                }
        }
Ejemplo n.º 4
0
        public void Initialize_InitializedTrue()
        {
            // Setup
            using (new UseCustomSettingsHelper(testSettingsHelper))
                using (new UseCustomTileSourceFactoryConfig(new WellKnownTileSourceMapData(WellKnownTileSource.BingAerial)))
                    using (WellKnownTileSourceLayerConfiguration configuration = WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration(WellKnownTileSource.BingAerial))
                    {
                        configuration.GetType()
                        .GetProperty(nameof(configuration.Initialized))
                        .SetValue(configuration, false, null);

                        // Call
                        configuration.Initialize();

                        // Assert
                        Assert.IsTrue(configuration.Initialized);
                    }
        }
Ejemplo n.º 5
0
        public void GivenAllAvailableKnownTileSources_WhenCreatingInitializedConfiguration_ThenConfigurationHasExpectedValues()
        {
            // Given
            using (new UseCustomSettingsHelper(testSettingsHelper))
            {
                foreach (WellKnownTileSource wellKnownTileSource in Enum.GetValues(typeof(WellKnownTileSource)))
                {
                    using (new UseCustomTileSourceFactoryConfig(new WellKnownTileSourceMapData(wellKnownTileSource)))
                    {
                        // When
                        using (WellKnownTileSourceLayerConfiguration configuration = WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration(wellKnownTileSource))
                        {
                            // Then
                            Assert.IsTrue(configuration.Initialized);

                            Assert.IsNotNull(configuration.TileSchema);
                            Assert.IsInstanceOf <AsyncTileFetcher>(configuration.TileFetcher);
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public void Clone_FromFullyInitializedConfiguration_ReturnInitializedConfiguration()
        {
            // Setup
            const WellKnownTileSource knownTileSource = WellKnownTileSource.BingAerial;

            using (new UseCustomSettingsHelper(testSettingsHelper))
                using (new UseCustomTileSourceFactoryConfig(new WellKnownTileSourceMapData(knownTileSource)))
                    using (WellKnownTileSourceLayerConfiguration configuration = WellKnownTileSourceLayerConfiguration.CreateInitializedConfiguration(knownTileSource))
                    {
                        // Call
                        using (var clone = (WellKnownTileSourceLayerConfiguration)configuration.Clone())
                        {
                            // Assert
                            Assert.IsTrue(clone.Initialized);

                            Assert.AreEqual(configuration.TileSchema, clone.TileSchema);
                            Assert.AreEqual(configuration.TileSchema.Name, clone.TileSchema.Name);
                            Assert.AreEqual(configuration.TileSchema.Format, clone.TileSchema.Format);

                            Assert.IsInstanceOf <AsyncTileFetcher>(clone.TileFetcher);
                        }
                    }
        }