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