64 lines
2.6 KiB
C#
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);
|
|
}
|
|
}
|