feat: harden isolated Tornado test workflow
This commit is contained in:
@@ -118,6 +118,75 @@ public sealed class K3dRegistrationProbeTests
|
||||
AssertSafe(report);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Probe_WhenProcessOrTypeLibraryIsNotX64_FailsClosed()
|
||||
{
|
||||
var snapshot = ReadySnapshot() with
|
||||
{
|
||||
Is64BitProcess = false,
|
||||
Win64TypeLibraryPath = null
|
||||
};
|
||||
var probe = CreateProbe(snapshot, ReadyBinaries());
|
||||
|
||||
var report = probe.Probe();
|
||||
|
||||
Assert.False(report.IsReady);
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.ProcessIsNot64Bit));
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.TypeLibraryMissing));
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.Win64BinaryMissing));
|
||||
AssertSafe(report);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Probe_WhenClassThreadingAndTypeLibraryDiffer_FailsClosed()
|
||||
{
|
||||
var snapshot = ReadySnapshot() with
|
||||
{
|
||||
Engine = ReadySnapshot().Engine with
|
||||
{
|
||||
ThreadingModel = "Both",
|
||||
TypeLibraryId = K3dComConstants.KaEventHandlerClassId
|
||||
},
|
||||
EventHandler = ReadySnapshot().EventHandler with
|
||||
{
|
||||
ThreadingModel = "Free",
|
||||
TypeLibraryId = K3dComConstants.KaEngineClassId
|
||||
}
|
||||
};
|
||||
var probe = CreateProbe(snapshot, ReadyBinaries());
|
||||
|
||||
var report = probe.Probe();
|
||||
|
||||
Assert.False(report.IsReady);
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.EngineThreadingModelMismatch));
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.EngineTypeLibraryMismatch));
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.EventHandlerThreadingModelMismatch));
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.EventHandlerTypeLibraryMismatch));
|
||||
Assert.False(report.IsEngineClassReady);
|
||||
Assert.False(report.IsEventHandlerClassReady);
|
||||
AssertSafe(report);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Probe_WhenEitherClassRegistrationIsMissing_FailsClosed()
|
||||
{
|
||||
var snapshot = ReadySnapshot() with
|
||||
{
|
||||
Engine = ReadySnapshot().Engine with { ClassKeyPresent = false },
|
||||
EventHandler = ReadySnapshot().EventHandler with { ClassKeyPresent = false }
|
||||
};
|
||||
var probe = CreateProbe(snapshot, ReadyBinaries());
|
||||
|
||||
var report = probe.Probe();
|
||||
|
||||
Assert.False(report.IsReady);
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.EngineClassMissing));
|
||||
Assert.True(report.Issues.HasFlag(K3dRegistrationIssue.EventHandlerClassMissing));
|
||||
Assert.False(report.IsEngineClassReady);
|
||||
Assert.False(report.IsEventHandlerClassReady);
|
||||
AssertSafe(report);
|
||||
}
|
||||
|
||||
private static K3dRegistrationProbe CreateProbe(
|
||||
K3dRegistrySnapshot snapshot,
|
||||
FakeBinaryInspector binaries) =>
|
||||
|
||||
Reference in New Issue
Block a user