Example #1
0
        public void SetUpTests()
        {
            HttpClient httpClient;
            var        databaseRoot = new InMemoryDatabaseRoot();

            contextOptions = new DbContextOptionsBuilder <DataRetrievalContext>()
                             .UseInMemoryDatabase(DatabaseName, databaseRoot)
                             .Options;

            var webAppFactory = new InMemoryFactory <FakeResponseServer.Startup>(DatabaseName, databaseRoot);

            httpClient = webAppFactory.CreateClient(FakeServerAddress);
            var dataSource = new FakeDataRetrievalSource(new FakeResponseServer.Controllers.ExternalAPICaller(httpClient), FakeServerAddress);

            sut = new ExternalAPIGateway(dataSource);

            var externalAPICaller = new FakeResponseServer.Controllers.ExternalAPICaller(httpClient);

            var now_UTC   = DateTime.UtcNow;
            var now_local = DateTime.Now;
            var offset    = -2;

            foreach (var item in PlayHistoryItems)
            {
                item.PlayedAt = now_UTC.AddDays(offset);
                offset++;
            }

            foreach (var item in ActivityHistory)
            {
                item.start_date       = now_UTC;
                item.start_date_local = now_local;
            }

            foreach (var item in FitBitActivityItems)
            {
                item.StartTime         = now_UTC;
                item.OriginalStartTime = now_UTC;
                item.LastModified      = now_UTC;
            }

            offset = -1;
            foreach (var item in LastFMTrackItems)
            {
                item.TimePlayed = now_UTC.AddDays(offset);
                offset++;
            }

            using var context = new DataRetrievalContext(contextOptions);
            context.PlayHistoryItems.RemoveRange(context.PlayHistoryItems);
            context.PlayHistoryItems.AddRange(PlayHistoryItems);
            context.ActivityHistoryItems.RemoveRange(context.ActivityHistoryItems);
            context.ActivityHistoryItems.AddRange(ActivityHistory);
            context.FitBitActivityItems.RemoveRange(context.FitBitActivityItems);
            context.FitBitActivityItems.AddRange(FitBitActivityItems);
            context.LastTracks.RemoveRange(context.LastTracks);
            context.LastTracks.AddRange(LastFMTrackItems);
            context.SaveChanges();

            fakeDataRetrievalSource = new FakeDataRetrievalSource(externalAPICaller, FakeServerAddress);
            sut = MakeSut();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="FakeDataRetrievalSource"/> class.
 /// </summary>
 /// <param name="externalAPICaller"> HTTP encapsulated Client. </param>
 /// <param name="fakeServerUrl"> Fake server url to call.</param>
 public FakeDataRetrievalSource(FakeResponseServer.Controllers.ExternalAPICaller externalAPICaller, string fakeServerUrl)
 {
     this.externalAPICaller  = externalAPICaller;
     this.fakeSpotifyAuthUrl = new Uri(fakeServerUrl);
 }