Files

30 lines
957 B
C#

using ItWorx.KnowledgeHub.Domain.Identity;
namespace ItWorx.KnowledgeHub.Domain.Tests;
public sealed class InstallationTests
{
[Fact]
public void CreateUninitialized_has_no_completion_timestamp()
{
var installation = Installation.CreateUninitialized("1.0.0", "m1", "nl-BE", "Europe/Brussels");
Assert.False(installation.IsSetupComplete);
Assert.Null(installation.SetupCompletedAt);
Assert.Equal(Installation.SingletonId, installation.Id);
}
[Fact]
public void CompleteSetup_can_only_happen_once()
{
var installation = Installation.CreateUninitialized("1.0.0", "m1", "nl-BE", "Europe/Brussels");
var now = DateTimeOffset.UtcNow;
installation.CompleteSetup(now);
Assert.True(installation.IsSetupComplete);
Assert.Equal(now, installation.SetupCompletedAt);
Assert.Throws<InvalidOperationException>(() => installation.CompleteSetup(now));
}
}