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); }