Files
ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.SiteRuntime.Tests/Scripts/TriggerEvalGateLifecycleTests.cs
T
2026-09-09 22:56:36 -04:00

26 lines
829 B
C#

using ZB.MOM.WW.ScadaBridge.SiteRuntime.Scripts;
namespace ZB.MOM.WW.ScadaBridge.SiteRuntime.Tests.Scripts;
public class TriggerEvalGateLifecycleTests
{
[Fact]
public async Task SharedGate_IsProcessOwnedAndRemainsUsableAfterCallerDisposes()
{
var gate = TriggerEvalGate.Shared(new SiteRuntimeOptions());
gate.Dispose();
Assert.Same(gate, TriggerEvalGate.Shared(new SiteRuntimeOptions()));
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(5));
await gate.WaitAsync(deadline.Token);
gate.Release();
}
[Fact]
public void OwnedGate_IsDisposedByCaller()
{
var gate = new TriggerEvalGate(1);
gate.Dispose();
Assert.Throws<ObjectDisposedException>(() => { _ = gate.WaitAsync(CancellationToken.None); });
}
}