public async Task SaveDbShouldCorrectlyGetDataFromQuery() { // Arrange // var connectionSettings = _factory.Services.GetRequiredService <IConnectionSettings>(); var dbConnection = new DataConnectionFactory(connectionSettings.GetDataProvider(), connectionSettings.BuildConnectionString()) .Create(); var dataProvider = new PostgresDataProvider( TestHelper.GetLoggerMock <PostgresDataProvider>().Object, new DataConnectionFactory(connectionSettings), MapperConfig.CreateMapper(), null); var watchRequest = new WatchRequest { DeviceId = "device-id", DeviceName = "device-name", Version = "version", CiqVersion = "ciq-version", Framework = "framework", WeatherProvider = "weather-provider", DarkskyKey = "dark-key", Lat = (decimal)1.1, Lon = (decimal)2.2, BaseCurrency = "USD", TargetCurrency = "EUR" }; // Act // await dataProvider.SaveRequestInfo(watchRequest, new WeatherInfo { WindSpeed = (decimal)5.5, Temperature = (decimal)4.4 }, new LocationInfo { CityName = "city-name" }, new ExchangeRateInfo { ExchangeRate = (decimal)3.3 }); // Assert // var actualDevice = await dbConnection.GetTable <DeviceData>().SingleAsync(d => d.DeviceId == watchRequest.DeviceId); var actualRequest = await dbConnection.GetTable <RequestData>().SingleAsync(r => r.DeviceDataId == actualDevice.Id); Assert.Equal("device-name", actualDevice.DeviceName); Assert.Equal("device-id", actualDevice.DeviceId); Assert.Equal(watchRequest.Framework, actualRequest.Framework); Assert.Equal(watchRequest.CiqVersion, actualRequest.CiqVersion); Assert.Equal(watchRequest.Version, actualRequest.Version); Assert.Equal(watchRequest.Lon, actualRequest.Lon); Assert.Equal(watchRequest.Lat, actualRequest.Lat); Assert.Equal(watchRequest.BaseCurrency, actualRequest.BaseCurrency); Assert.Equal(watchRequest.TargetCurrency, actualRequest.TargetCurrency); Assert.Equal((decimal)4.4, actualRequest.Temperature); Assert.Equal("city-name", actualRequest.CityName); Assert.Equal((decimal)3.3, actualRequest.ExchangeRate); }
public YAFaceController( ILogger <YAFaceController> logger, PostgresDataProvider postgresDataProvider, KafkaProvider kafkaProvider, ExchangeRateCacheStrategy exchangeRateCacheStrategy, VirtualearthClient virtualearthClient, DarkSkyClient darkSkyClient, OpenWeatherClient openWeatherClient, FaceSettings faceSettings) { _logger = logger; _postgresDataProvider = postgresDataProvider; _kafkaProvider = kafkaProvider; _exchangeRateCacheStrategy = exchangeRateCacheStrategy; _virtualearthClient = virtualearthClient; _darkSkyClient = darkSkyClient; _openWeatherClient = openWeatherClient; _faceSettings = faceSettings; }
public async Task SameDeviceWithTheSameCoordinatesShouldReturnCity() { // Arrange // var connectionSettings = _factory.Services.GetRequiredService <IConnectionSettings>(); var dataProvider = new PostgresDataProvider( TestHelper.GetLoggerMock <PostgresDataProvider>().Object, new DataConnectionFactory(connectionSettings), MapperConfig.CreateMapper(), TestHelper.GetMetricsMock().Object); var watchRequest = new WatchRequest { DeviceId = "device-id", DeviceName = "device-name", Version = "version", CiqVersion = "ciq-version", Framework = "framework", WeatherProvider = "weather-provider", DarkskyKey = "dark-key", Lat = (decimal)1.1, Lon = (decimal)2.2, BaseCurrency = "USD", TargetCurrency = "EUR" }; await dataProvider.SaveRequestInfo(watchRequest, new WeatherInfo { WindSpeed = (decimal)5.5, Temperature = (decimal)4.4 }, new LocationInfo { CityName = "city-name2" }, new ExchangeRateInfo { ExchangeRate = (decimal)3.3 }); // Act // var actualLocationInfo = await dataProvider.LoadLastLocation("device-id", (decimal)1.1, (decimal)2.2); // Assert // Assert.Equal("city-name2", actualLocationInfo.CityName); Assert.Equal(RequestStatusCode.Ok, actualLocationInfo.RequestStatus.StatusCode); }
public async Task NoLocationShouldReturnNull() { // Arrange // var connectionSettings = _factory.Services.GetRequiredService <IConnectionSettings>(); var dataProvider = new PostgresDataProvider( TestHelper.GetLoggerMock <PostgresDataProvider>().Object, new DataConnectionFactory(connectionSettings), MapperConfig.CreateMapper(), TestHelper.GetMetricsMock().Object); // Act // var actualLocationInfo = await dataProvider.LoadLastLocation("device-id", (decimal)1.1, (decimal)2.2); // Assert // Assert.Null(actualLocationInfo); }
public TicketModelsFactory(PostgresDataProvider postgreDataProvider) { this.postgreDataProvider = postgreDataProvider; }