Files
OpenMaidEngine/engine/Age.Engine.Tests/AdvAutoAdvanceTimerTests.cs
2026-07-18 17:16:06 -04:00

54 lines
1.7 KiB
C#

using Age.Engine.Hosting;
using Xunit;
public class AdvAutoAdvanceTimerTests
{
[Fact]
public void UnvoicedWait_UsesAutoMessageTime1()
{
var timer = new AdvAutoAdvanceTimer();
var state = new AdvAutoWaitState(true, false, 500, 2000);
Assert.False(timer.Poll(state, false, 1000));
Assert.False(timer.Poll(state, false, 2999));
Assert.True(timer.Poll(state, false, 3000));
}
[Fact]
public void VoicedWait_WaitsForVoiceThenUsesAutoMessageTime0()
{
var timer = new AdvAutoAdvanceTimer();
var state = new AdvAutoWaitState(true, true, 500, 2000);
Assert.False(timer.Poll(state, true, 1000));
Assert.False(timer.Poll(state, true, 9000));
Assert.False(timer.Poll(state, false, 9000));
Assert.False(timer.Poll(state, false, 9499));
Assert.True(timer.Poll(state, false, 9500));
}
[Fact]
public void DisablingAuto_CancelsDeadlineAndReenableStartsFresh()
{
var timer = new AdvAutoAdvanceTimer();
var on = new AdvAutoWaitState(true, false, 500, 2000);
Assert.False(timer.Poll(on, false, 0));
Assert.False(timer.Poll(on with { Enabled = false }, false, 1500));
Assert.False(timer.Poll(on, false, 5000));
Assert.False(timer.Poll(on, false, 6999));
Assert.True(timer.Poll(on, false, 7000));
}
[Fact]
public void ZeroConfiguration_UsesNativeHundredMillisecondFallback()
{
var timer = new AdvAutoAdvanceTimer();
var state = new AdvAutoWaitState(true, false, 0, 0);
Assert.False(timer.Poll(state, false, 0));
Assert.False(timer.Poll(state, false, 99));
Assert.True(timer.Poll(state, false, 100));
}
}