Implement ADV controls and native Auto timing
This commit is contained in:
53
engine/Age.Engine.Tests/AdvAutoAdvanceTimerTests.cs
Normal file
53
engine/Age.Engine.Tests/AdvAutoAdvanceTimerTests.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user