diff options
Diffstat (limited to 'Timeline.Tests/Helpers/TestApplication.cs')
-rw-r--r-- | Timeline.Tests/Helpers/TestApplication.cs | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/Timeline.Tests/Helpers/TestApplication.cs b/Timeline.Tests/Helpers/TestApplication.cs index bc5deeec..52c2f2e2 100644 --- a/Timeline.Tests/Helpers/TestApplication.cs +++ b/Timeline.Tests/Helpers/TestApplication.cs @@ -1,10 +1,13 @@ 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;
+using Timeline.Migrations;
namespace Timeline.Tests.Helpers
{
@@ -14,25 +17,42 @@ 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();
+ context.JwtToken.Add(new JwtTokenEntity
+ {
+ Key = JwtTokenGenerateHelper.GenerateKey()
+ });
+ context.SaveChanges();
}
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 +64,8 @@ namespace Timeline.Tests.Helpers {
DatabaseConnection.Close();
DatabaseConnection.Dispose();
+
+ Directory.Delete(WorkDir, true);
}
}
}
|