From 3fa9899e17df4b1012e8b645915ac15022b84f9b Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 21 Feb 2020 11:59:58 +0800 Subject: Migrate to use sqlite. --- Timeline.Tests/Helpers/TestApplication.cs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'Timeline.Tests/Helpers/TestApplication.cs') 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 Factory { get; } + public string WorkDir { get; } + public TestApplication(WebApplicationFactory factory) { + WorkDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + Directory.CreateDirectory(WorkDir); + DatabaseConnection = new SqliteConnection("Data Source=:memory:;"); DatabaseConnection.Open(); - var options = new DbContextOptionsBuilder() + var options = new DbContextOptionsBuilder() .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 + { + ["WorkDir"] = WorkDir + }); + }); builder.ConfigureServices(services => { - services.AddDbContext(options => + services.AddDbContext(options => { options.UseSqlite(DatabaseConnection); }); @@ -44,6 +58,8 @@ namespace Timeline.Tests.Helpers { DatabaseConnection.Close(); DatabaseConnection.Dispose(); + + Directory.Delete(WorkDir, true); } } } -- cgit v1.2.3