diff --git a/Content.Tests/Server/Preferences/ServerDbSqliteTests.cs b/Content.IntegrationTests/Tests/Preferences/ServerDbSqliteTests.cs similarity index 78% rename from Content.Tests/Server/Preferences/ServerDbSqliteTests.cs rename to Content.IntegrationTests/Tests/Preferences/ServerDbSqliteTests.cs index 7c3282e2013..35aedf43f26 100644 --- a/Content.Tests/Server/Preferences/ServerDbSqliteTests.cs +++ b/Content.IntegrationTests/Tests/Preferences/ServerDbSqliteTests.cs @@ -1,41 +1,36 @@ -using System; using System.Collections.Generic; -using System.IO; using System.Linq; -using System.Threading.Tasks; using Content.Server.Database; using Content.Shared.GameTicking; using Content.Shared.Humanoid; using Content.Shared.Preferences; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; -using NUnit.Framework; using Robust.Shared.Configuration; using Robust.Shared.Enums; -using Robust.Shared.IoC; using Robust.Shared.Maths; using Robust.Shared.Network; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.Manager; -namespace Content.Tests.Server.Preferences +namespace Content.IntegrationTests.Tests.Preferences { [TestFixture] - public sealed class ServerDbSqliteTests : ContentUnitTest + public sealed class ServerDbSqliteTests { + [TestPrototypes] private const string Prototypes = @" - type: dataset - id: names_first_male + id: sqlite_test_names_first_male values: - Aaden - type: dataset - id: names_first_female + id: sqlite_test_names_first_female values: - Aaliyah - type: dataset - id: names_last + id: sqlite_test_names_last values: - Ackerley"; @@ -69,50 +64,54 @@ private static HumanoidCharacterProfile CharlieCharlieson() ); } - private static ServerDbSqlite GetDb() + private static ServerDbSqlite GetDb(IConfigurationManager cfgManager) { var builder = new DbContextOptionsBuilder(); var conn = new SqliteConnection("Data Source=:memory:"); conn.Open(); builder.UseSqlite(conn); - return new ServerDbSqlite(() => builder.Options, true, IoCManager.Resolve(), true); + return new ServerDbSqlite(() => builder.Options, true, cfgManager, true); } [Test] public async Task TestUserDoesNotExist() { - var db = GetDb(); + var pair = await PoolManager.GetServerClient(); + var db = GetDb(pair.Server.ResolveDependency()); // Database should be empty so a new GUID should do it. Assert.Null(await db.GetPlayerPreferencesAsync(NewUserId())); + + await pair.CleanReturnAsync(); } [Test] public async Task TestInitPrefs() { - var db = GetDb(); + var pair = await PoolManager.GetServerClient(); + var db = GetDb(pair.Server.ResolveDependency()); var username = new NetUserId(new Guid("640bd619-fc8d-4fe2-bf3c-4a5fb17d6ddd")); const int slot = 0; var originalProfile = CharlieCharlieson(); await db.InitPrefsAsync(username, originalProfile); var prefs = await db.GetPlayerPreferencesAsync(username); Assert.That(prefs.Characters.Single(p => p.Key == slot).Value.MemberwiseEquals(originalProfile)); + await pair.CleanReturnAsync(); } [Test] public async Task TestDeleteCharacter() { - var db = GetDb(); + var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + var db = GetDb(server.ResolveDependency()); var username = new NetUserId(new Guid("640bd619-fc8d-4fe2-bf3c-4a5fb17d6ddd")); - IoCManager.Resolve().Initialize(); - var prototypeManager = IoCManager.Resolve(); - prototypeManager.Initialize(); - prototypeManager.LoadFromStream(new StringReader(Prototypes)); await db.InitPrefsAsync(username, new HumanoidCharacterProfile()); await db.SaveCharacterSlotAsync(username, CharlieCharlieson(), 1); await db.SaveSelectedCharacterIndexAsync(username, 1); await db.SaveCharacterSlotAsync(username, null, 1); var prefs = await db.GetPlayerPreferencesAsync(username); Assert.That(!prefs.Characters.Any(p => p.Key != 0)); + await pair.CleanReturnAsync(); } private static NetUserId NewUserId()