public void SetUpFixture() { _weatherDataRetriever = MockRepository.GenerateMock <IWeatherDataRetriever>(); _weatherDataRetrieverToReturnEmpty = MockRepository.GenerateMock <IWeatherDataRetriever>(); _darkSkyConfigurationManager = MockRepository.GenerateMock <IDarkSkyConfigurationManager>(); _darkSkyConfigurationManager.Expect(configurationManager => configurationManager.GetConfigFromAppSettings(_configKeyName)).Return(_baseUrl); _darkSkyConfigurationManagerThatReturnsNull = MockRepository.GenerateMock <IDarkSkyConfigurationManager>(); _darkSkyConfigurationManagerThatReturnsNull.Expect(configurationManager => configurationManager.GetConfigFromAppSettings(_configKeyName)).Return(null); _darkSkyConfigurationManagerThatReturnsWrongFormat = MockRepository.GenerateMock <IDarkSkyConfigurationManager>(); _darkSkyConfigurationManagerThatReturnsWrongFormat.Expect(configurationManager => configurationManager.GetConfigFromAppSettings(_configKeyName)).Return("CLEARLY_NOT_AN_URL"); _mockEmptyResponseTask = Task <string> .Factory.StartNew(() => null); _mockNormalDarkSkyResponseTask = Task <string> .Factory.StartNew(() => _exampleResponse); _weatherDataRetriever.Expect(retriever => retriever.FetchWeatherData(Arg <Uri> .Is.Anything)).Return(_mockNormalDarkSkyResponseTask); _weatherDataRetrieverToReturnEmpty.Expect(retriever => retriever.FetchWeatherData(Arg <Uri> .Is.Anything)).Return(_mockEmptyResponseTask); }
public DarkSkyService(IWeatherDataRetriever weatherDataRetriever, IDarkSkyConfigurationManager darkSkyConfigurationManager) { _weatherDataRetriever = ArgumentValidation.ThrowIfNull(weatherDataRetriever, nameof(weatherDataRetriever)); _darkSkyConfigurationManager = ArgumentValidation.ThrowIfNull(darkSkyConfigurationManager, nameof(darkSkyConfigurationManager)); _darkSkyForecastBaseUrl = new Uri(_darkSkyConfigurationManager.GetConfigFromAppSettings("darkSkyForecastBaseUrl")); }