public async Task DownloadNewDataFeed() { await new Startup().RunAsync(); var mapper = new DataFeedMapper(); var configuration = new Mock <IDataFeedRepositoryConfiguration>(); configuration.Setup(c => c.StorageFolderPath).Returns(Path.Combine(Path.GetTempPath(), "ExchangeRates")); var repository = new DataFeedRepository(configuration.Object, mapper); var dataFeed = await repository.LoadAsync(); Assert.IsNotNull(dataFeed, "Should load DataFeed"); }
public async Task ReadLatestDataFeed() { var mapper = new DataFeedMapper(); var configuration = new Mock <IDataFeedRepositoryConfiguration>(); configuration.Setup(c => c.StorageFolderPath).Returns(storageFolderPath); var repository = new DataFeedRepository(configuration.Object, mapper); var dataFeed1 = new DataFeed() { Base = "EUR", Success = true, Timestamp = 1541819346, Rates = new Dictionary <string, decimal>() { { "ETB", 31.813406m }, { "EUR", 1m }, { "GBP", 0.873592m } } }; await repository.SaveAsync(dataFeed1); var dataFeed2 = new DataFeed() { Base = "EUR", Success = true, Timestamp = 1541819446, Rates = new Dictionary <string, decimal>() { { "ETB", 31.813406m }, { "EUR", 1m }, { "GBP", 0.873592m } } }; await repository.SaveAsync(dataFeed2); var dataFeed = await repository.LoadAsync(); Assert.AreEqual(dataFeed2.Timestamp, dataFeed.Timestamp, "Should load latest DataFeed"); }