fix(runtime): close Campaign LA7b review findings
This commit is contained in:
parent
0e82cbf700
commit
1b9e7e41f9
11 changed files with 700 additions and 28 deletions
|
|
@ -8,6 +8,18 @@ namespace AcDream.Runtime.Tests.Session;
|
|||
|
||||
public sealed class LiveSessionControllerTests
|
||||
{
|
||||
private sealed class ManualTimeProvider : TimeProvider
|
||||
{
|
||||
private long _timestamp;
|
||||
|
||||
public override long TimestampFrequency => TimeSpan.TicksPerSecond;
|
||||
|
||||
public override long GetTimestamp() => _timestamp;
|
||||
|
||||
public void Advance(TimeSpan elapsed) =>
|
||||
_timestamp += elapsed.Ticks;
|
||||
}
|
||||
|
||||
private sealed class TestTransport : IWorldSessionTransport
|
||||
{
|
||||
public void Send(ReadOnlySpan<byte> datagram) { }
|
||||
|
|
@ -466,7 +478,8 @@ public sealed class LiveSessionControllerTests
|
|||
var calls = new List<string>();
|
||||
var operations = new TestOperations(calls);
|
||||
var host = new TestHost(calls);
|
||||
var controller = new LiveSessionController(operations);
|
||||
var time = new ManualTimeProvider();
|
||||
var controller = new LiveSessionController(operations, time);
|
||||
Assert.Equal(
|
||||
LiveSessionStartStatus.AwaitingCharacterSelection,
|
||||
controller.Start(LiveOptions(awaitSelection: true), host).Status);
|
||||
|
|
@ -499,8 +512,21 @@ public sealed class LiveSessionControllerTests
|
|||
// ACE may send no response for an unknown guid. The synchronous
|
||||
// command has already returned and does not gate later commands.
|
||||
Assert.True(controller.Highlight(generation, 0x50000002u).Accepted);
|
||||
Assert.Equal(
|
||||
RuntimeCommandStatus.Rejected,
|
||||
controller.Restore(generation).Status);
|
||||
controller.Tick();
|
||||
Assert.Equal(1, operations.TickCount);
|
||||
time.Advance(RuntimeCharacterSelectionState.RestoreCorrelationTimeout);
|
||||
controller.Tick();
|
||||
Assert.Equal(
|
||||
RuntimeCharacterSelectionOperation.None,
|
||||
controller.CharacterSelection.Snapshot.Operation);
|
||||
Assert.True(controller.CharacterSelection.Snapshot.Buttons.CanRestore);
|
||||
Assert.True(controller.Restore(generation).Accepted);
|
||||
Assert.Equal(
|
||||
[0x50000001u, 0x50000002u],
|
||||
operations.RestoreRequests);
|
||||
Assert.False(controller.IsInWorld);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue