internal void SetModeCorrespondingToQueryMode(string ExpectedMode, OpenWeatherUrlProvider.QueryMode ModeToSet)
        {
            IUrlProvider ProviderUnderTest = CreateDefaultUrlProvider();

            ProviderUnderTest.SetMode(ModeToSet);

            Assert.Contains(ExpectedMode, ProviderUnderTest.GetUriAsString());
        }
        internal void ProvideAFluidInterface()
        {
            const string Town = "Karlsruhe,de";
            const OpenWeatherUrlProvider.QueryMode     Mode     = OpenWeatherUrlProvider.QueryMode.Json;
            const OpenWeatherUrlProvider.QueryUnit     Unit     = OpenWeatherUrlProvider.QueryUnit.Metric;
            const OpenWeatherUrlProvider.QueryLanguage Language = OpenWeatherUrlProvider.QueryLanguage.German;

            IUrlProvider ProviderUnderTest = CreateDefaultUrlProvider();

            ProviderUnderTest.SetLocation(Town).SetMode(Mode).SetUnit(Unit).SetLanguage(Language);

            Assert.True(true);
        }
        public void ReplaceOldLocationWithNewWhenCallingSetLocationTwiceWhenNotLastParameter()
        {
            const string firstTown  = "Karlsruhe,de";
            const string secondTown = "Stuttgart,de";
            const OpenWeatherUrlProvider.QueryMode mode = OpenWeatherUrlProvider.QueryMode.Json;

            IUrlProvider providerUnderTest = CreateDefaultUrlProvider();

            providerUnderTest.SetLocation(firstTown)
            .SetMode(mode);
            providerUnderTest.SetLocation(secondTown);
            var url = providerUnderTest.GetUriAsString();

            Assert.Contains(string.Concat("q=", secondTown), url);
            Assert.DoesNotContain(string.Concat("q=", firstTown), url);
            Assert.Contains("mode=json", url);
        }