public void ZoomLevelToHEREMappingTheory(
     ZoomLevel zoomLevel,
     int expectedHEREValue)
 {
     HEREMapImageRetriever.ZoomLevelToHereValue(zoomLevel)
     .Should()
     .Be(
         expectedHEREValue,
         because: "the theory says so");
 }
        /// <summary>
        /// Creates the default <see cref="IMapImageRetriever"/>, which is a
        /// database cache that falls back to HERE services.
        /// </summary>
        /// <param name="serviceProvider">The service provider.</param>
        /// <returns>The default <see cref="IMapImageRetriever"/>.</returns>
        public static IMapImageRetriever CreateDefault(IServiceProvider serviceProvider)
        {
            var hereMapsRetriever = new HEREMapImageRetriever(
                serviceProvider.GetService <IGeocodeClient>(),
                serviceProvider.GetService <IMapImageClient>());

            var cacheRetriever = new CachedMapImageRetriever(
                serviceProvider.GetService <FvectContext>(),
                hereMapsRetriever,
                serviceProvider.GetService <IOptionsMonitor <BackendOptions> >(),
                serviceProvider.GetService <ILogger <CachedMapImageRetriever> >());

            return(cacheRetriever);
        }