Ejemplo n.º 1
0
        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");
        }