Publish curated Knowledge Hub source from 2ed833f290b439a7bc91e5fd19b042c269e3bee9
This commit is contained in:
1 parent
10f2edcd29
commit
59f15b2d08
218 files changed
+23995
-1849
No files matched your search
@@ -0,0 +1,50 @@
|
||||
using ItWorx.KnowledgeHub.Domain.Sources;
|
||||
|
||||
namespace ItWorx.KnowledgeHub.Domain.Tests.Sources;
|
||||
|
||||
public sealed class DataSourceTests
|
||||
{
|
||||
private static readonly DateTimeOffset Now = new(2026, 10, 2, 0, 0, 0, TimeSpan.Zero);
|
||||
|
||||
[Fact]
|
||||
public void A_registered_source_is_unknown_until_it_has_observed_evidence()
|
||||
{
|
||||
var source = DataSource.Create(Guid.NewGuid(), "inventory:test", "Inventory", DataSourceKind.Inventory, 24, Now);
|
||||
Assert.Equal("Unknown", source.GetState(Now));
|
||||
Assert.Null(source.LastSuccessAt);
|
||||
Assert.Null(source.RecordCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Newer_failure_outweighs_earlier_success_and_stale_success_is_not_current()
|
||||
{
|
||||
var source = DataSource.Create(Guid.NewGuid(), "inventory:test", "Inventory", DataSourceKind.Inventory, 24, Now);
|
||||
source.Observe(true, 12, null, "run1", Now);
|
||||
Assert.Equal("Current", source.GetState(Now));
|
||||
Assert.Equal("Stale", source.GetState(Now.AddHours(25)));
|
||||
source.Observe(false, null, "connectivity", "run2", Now.AddHours(1));
|
||||
Assert.Equal("Failed", source.GetState(Now.AddHours(1)));
|
||||
Assert.Equal(12, source.RecordCount);
|
||||
Assert.Throws<ArgumentException>(() => source.Observe(true, 99, null, "older", Now.AddMinutes(-1)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Importing_old_data_does_not_refresh_its_freshness()
|
||||
{
|
||||
var source = DataSource.Create(Guid.NewGuid(), "inventory:test", "Inventory", DataSourceKind.Inventory, 24, Now);
|
||||
source.Observe(true, 12, null, "import", Now, Now.AddDays(-2));
|
||||
Assert.Equal("Stale", source.GetState(Now));
|
||||
Assert.Equal(Now, source.LastSuccessAt);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Disabling_preserves_prior_evidence_and_observations_require_safe_error_codes()
|
||||
{
|
||||
var source = DataSource.Create(Guid.NewGuid(), "inventory:test", "Inventory", DataSourceKind.Inventory, 24, Now);
|
||||
source.Observe(true, 12, null, "run1", Now);
|
||||
source.Configure("Inventory", false, 24);
|
||||
Assert.Equal("Disabled", source.GetState(Now));
|
||||
Assert.Equal(Now, source.LastSuccessAt);
|
||||
Assert.Throws<ArgumentException>(() => source.Observe(false, null, "secret connection string", "run2", Now));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user