IdentityShroud/IdentityShroud.Core.Tests/Services/RealmServiceTests.cs

52 lines
1.5 KiB
C#
Raw Normal View History

using FluentResults;
using IdentityShroud.Core.Services;
using IdentityShroud.Core.Tests.Fixtures;
using IdentityShroud.Core.Tests.Substitutes;
using Microsoft.EntityFrameworkCore;
namespace IdentityShroud.Core.Tests.Services;
public class RealmServiceTests : IClassFixture<DbFixture>
{
private readonly Db _db;
public RealmServiceTests(DbFixture dbFixture)
{
_db = dbFixture.CreateDbContext("realmservice");
if (!_db.Database.EnsureCreated())
TruncateTables();
}
private void TruncateTables()
{
_db.Database.ExecuteSqlRaw("TRUNCATE realm CASCADE;");
}
[Theory]
[InlineData(null)]
[InlineData("a7c2a39c-3ed9-4790-826e-43bb2e5e480c")]
public async Task Create(string? idString)
{
Guid? realmId = null;
if (idString is not null)
realmId = new(idString);
var encryptionService = EncryptionServiceSubstitute.CreatePassthrough();
RealmService sut = new(_db, encryptionService);
var response = await sut.Create(
new(realmId, "slug", "New realm"),
TestContext.Current.CancellationToken);
RealmCreateResponse val = ResultAssert.Success(response);
if (realmId.HasValue)
Assert.Equal(realmId, val.Realm.Id);
else
Assert.NotEqual(Guid.Empty, val.Realm.Id);
Assert.Equal("slug", val.Realm.Slug);
Assert.Equal("New realm", val.Realm.Name);
Assert.NotEmpty(val.Realm.PrivateKeyEncrypted);
}
}