Files

64 lines
2.6 KiB
C#

using ItWorx.KnowledgeHub.Domain.Infrastructure;
namespace ItWorx.KnowledgeHub.Domain.Tests;
public sealed class InfrastructureKnowledgeTests
{
[Fact]
public void Editorial_profile_normalizes_tags_without_touching_source_facts()
{
var now = DateTimeOffset.UtcNow;
var profile = EditorialProfile.Create(
Guid.NewGuid(), InfrastructureObjectKind.Service, Guid.NewGuid(), Guid.NewGuid(), now);
profile.Update(
" Knowledge Hub ", "Beschrijving", "Productiviteit", "Doel", null, null,
null, null, "Gedekt", null, "Notities", "Risico's", "Update", "Rollback",
["docker", "Docker", " kennis "], true, false, false, Guid.NewGuid(), now.AddMinutes(1));
Assert.Equal("Knowledge Hub", profile.DisplayName);
Assert.Equal(["docker", "kennis"], profile.Tags);
Assert.True(profile.IsFavorite);
}
[Fact]
public void A_missing_service_is_never_deleted_and_can_be_observed_again()
{
var now = DateTimeOffset.UtcNow;
var service = InfrastructureService.Create(
Guid.NewGuid(), "docker:knowledge-hub", "knowledge-hub", now, Guid.NewGuid());
service.Confirm();
service.Refresh(null, "knowledge-hub", "container", "running", HealthState.Healthy,
"example/image", "", "", false, true, false, FactConfidence.High, Guid.NewGuid(), now);
service.MarkMissing(now.AddMinutes(1));
Assert.Equal(InventoryPresence.Missing, service.Presence);
Assert.Equal(HealthState.Unknown, service.Health);
Assert.Equal("unknown", service.RuntimeStatus);
Assert.Equal(now, service.LastSeenAt);
service.Refresh(
null, "knowledge-hub", "container", "running", HealthState.Healthy,
"itworx/knowledge-hub:v2", "sha256:test", "10001:10001", true, true, false,
FactConfidence.High, Guid.NewGuid(), now.AddMinutes(2));
Assert.Equal(InventoryPresence.Present, service.Presence);
}
[Fact]
public void A_rejected_proposal_stays_archived_when_seen_in_a_later_snapshot()
{
var now = DateTimeOffset.UtcNow;
var service = InfrastructureService.Create(
Guid.NewGuid(), "docker:temporary", "temporary", now, Guid.NewGuid());
service.Reject();
service.Refresh(
null, "temporary", "container", "running", HealthState.Healthy,
"example/temporary:latest", "sha256:test", "1000:1000", false, true, false,
FactConfidence.High, Guid.NewGuid(), now.AddMinutes(1));
Assert.Equal(InventoryPresence.Archived, service.Presence);
}
}