aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests/Helpers/TestApplication.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-02-21 11:59:58 +0800
committercrupest <crupest@outlook.com>2020-02-21 11:59:58 +0800
commit6cf3c7891fe8a810b20bb799db9f3fb97414c4de (patch)
treea143ff8698660608d188428957a1ad56d620cca6 /Timeline.Tests/Helpers/TestApplication.cs
parente6a153380c720e386137904498b78b5488868f13 (diff)
downloadtimeline-6cf3c7891fe8a810b20bb799db9f3fb97414c4de.tar.gz
timeline-6cf3c7891fe8a810b20bb799db9f3fb97414c4de.tar.bz2
timeline-6cf3c7891fe8a810b20bb799db9f3fb97414c4de.zip
Migrate to use sqlite.
Diffstat (limited to 'Timeline.Tests/Helpers/TestApplication.cs')
-rw-r--r--Timeline.Tests/Helpers/TestApplication.cs24
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);
}
}
}