aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests/Mock/Data/TestDatabase.cs
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-08-18 18:07:50 +0800
committer杨宇千 <crupest@outlook.com>2019-08-18 18:07:50 +0800
commit36a5a7c81569bbc4fa76b77e9823767d951944b4 (patch)
tree21b4c77e48f34e1a72858209e4d4d6d7978b663a /Timeline.Tests/Mock/Data/TestDatabase.cs
parent0630fd020ec11e343b787a18d70f1f13fdb350b3 (diff)
downloadtimeline-36a5a7c81569bbc4fa76b77e9823767d951944b4.tar.gz
timeline-36a5a7c81569bbc4fa76b77e9823767d951944b4.tar.bz2
timeline-36a5a7c81569bbc4fa76b77e9823767d951944b4.zip
Add avatar service.
Diffstat (limited to 'Timeline.Tests/Mock/Data/TestDatabase.cs')
-rw-r--r--Timeline.Tests/Mock/Data/TestDatabase.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/Timeline.Tests/Mock/Data/TestDatabase.cs b/Timeline.Tests/Mock/Data/TestDatabase.cs
new file mode 100644
index 00000000..09c77dce
--- /dev/null
+++ b/Timeline.Tests/Mock/Data/TestDatabase.cs
@@ -0,0 +1,46 @@
+using Microsoft.Data.Sqlite;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Diagnostics;
+using System;
+using Timeline.Entities;
+
+namespace Timeline.Tests.Mock.Data
+{
+ public class TestDatabase : IDisposable
+ {
+ private readonly SqliteConnection _databaseConnection;
+ private readonly DatabaseContext _databaseContext;
+
+ public TestDatabase()
+ {
+ _databaseConnection = new SqliteConnection("Data Source=:memory:;");
+ _databaseConnection.Open();
+
+ var options = new DbContextOptionsBuilder<DatabaseContext>()
+ .UseSqlite(_databaseConnection)
+ .ConfigureWarnings(builder =>
+ {
+ builder.Throw(RelationalEventId.QueryClientEvaluationWarning);
+ })
+ .Options;
+
+ _databaseContext = new DatabaseContext(options);
+
+ // init with mock data
+ _databaseContext.Database.EnsureCreated();
+ _databaseContext.Users.AddRange(MockUsers.Users);
+ _databaseContext.SaveChanges();
+ }
+
+ public void Dispose()
+ {
+ _databaseContext.Dispose();
+
+ _databaseConnection.Close();
+ _databaseConnection.Dispose();
+ }
+
+ public SqliteConnection DatabaseConnection => _databaseConnection;
+ public DatabaseContext DatabaseContext => _databaseContext;
+ }
+}