diff options
Diffstat (limited to 'Timeline.Tests/Helpers')
-rw-r--r-- | Timeline.Tests/Helpers/TestApplication.cs | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/Timeline.Tests/Helpers/TestApplication.cs b/Timeline.Tests/Helpers/TestApplication.cs index bc5deeec..5fbc2fb0 100644 --- a/Timeline.Tests/Helpers/TestApplication.cs +++ b/Timeline.Tests/Helpers/TestApplication.cs @@ -1,9 +1,11 @@ using Microsoft.AspNetCore.Mvc.Testing;
-using Microsoft.AspNetCore.TestHost;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
+using System.Collections.Generic;
+using System.IO;
using Timeline.Entities;
namespace Timeline.Tests.Helpers
@@ -14,25 +16,37 @@ namespace Timeline.Tests.Helpers public WebApplicationFactory<Startup> Factory { get; }
+ public string WorkDir { get; }
+
public TestApplication(WebApplicationFactory<Startup> factory)
{
+ WorkDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
+ Directory.CreateDirectory(WorkDir);
+
DatabaseConnection = new SqliteConnection("Data Source=:memory:;");
DatabaseConnection.Open();
- var options = new DbContextOptionsBuilder<DevelopmentDatabaseContext>()
+ var options = new DbContextOptionsBuilder<DatabaseContext>()
.UseSqlite(DatabaseConnection)
.Options;
- using (var context = new DevelopmentDatabaseContext(options))
+ using (var context = new DatabaseContext(options))
{
context.Database.EnsureCreated();
}
Factory = factory.WithWebHostBuilder(builder =>
{
+ builder.ConfigureAppConfiguration((context, config) =>
+ {
+ config.AddInMemoryCollection(new Dictionary<string, string>
+ {
+ ["WorkDir"] = WorkDir
+ });
+ });
builder.ConfigureServices(services =>
{
- services.AddDbContext<DatabaseContext, DevelopmentDatabaseContext>(options =>
+ services.AddDbContext<DatabaseContext>(options =>
{
options.UseSqlite(DatabaseConnection);
});
@@ -44,6 +58,8 @@ namespace Timeline.Tests.Helpers {
DatabaseConnection.Close();
DatabaseConnection.Dispose();
+
+ Directory.Delete(WorkDir, true);
}
}
}
|