process TODO.md step2
This commit is contained in:
@@ -86,6 +86,38 @@ namespace Tests.EditMode.Network
|
||||
Assert.That(parsed.MoveY, Is.EqualTo(-1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SendMessage_ZeroVectorMoveInput_UsesSyncLanePolicy()
|
||||
{
|
||||
var reliableTransport = new FakeTransport();
|
||||
var syncTransport = new FakeTransport();
|
||||
var manager = new MessageManager(
|
||||
reliableTransport,
|
||||
new MainThreadNetworkDispatcher(),
|
||||
new DefaultMessageDeliveryPolicyResolver(),
|
||||
syncTransport);
|
||||
var message = new MoveInput
|
||||
{
|
||||
PlayerId = "player-1",
|
||||
Tick = 13,
|
||||
MoveX = 0f,
|
||||
MoveY = 0f
|
||||
};
|
||||
|
||||
manager.SendMessage(message, MessageType.MoveInput);
|
||||
|
||||
Assert.That(reliableTransport.SendCallCount, Is.EqualTo(0));
|
||||
Assert.That(syncTransport.SendCallCount, Is.EqualTo(1));
|
||||
|
||||
var envelope = Envelope.Parser.ParseFrom(syncTransport.LastSentData);
|
||||
var parsed = MoveInput.Parser.ParseFrom(envelope.Payload);
|
||||
Assert.That(envelope.Type, Is.EqualTo((int)MessageType.MoveInput));
|
||||
Assert.That(parsed.PlayerId, Is.EqualTo("player-1"));
|
||||
Assert.That(parsed.Tick, Is.EqualTo(13));
|
||||
Assert.That(parsed.MoveX, Is.EqualTo(0f));
|
||||
Assert.That(parsed.MoveY, Is.EqualTo(0f));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SendMessage_ShootInput_UsesReliableLanePolicy()
|
||||
{
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
"references": [
|
||||
"Network.Runtime",
|
||||
"UnityEngine.TestRunner",
|
||||
"UnityEditor.TestRunner"
|
||||
"UnityEditor.TestRunner",
|
||||
"NetworkFramework"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
|
||||
@@ -6,11 +6,54 @@ using Network.NetworkApplication;
|
||||
using Network.NetworkHost;
|
||||
using Network.NetworkTransport;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using Vector3 = UnityEngine.Vector3;
|
||||
|
||||
namespace Tests.EditMode.Network
|
||||
{
|
||||
public class SyncStrategyTests
|
||||
{
|
||||
[Test]
|
||||
public void ClientGameplayInputFlow_StopTransition_EmitsSingleZeroVectorMoveInput()
|
||||
{
|
||||
var released = ClientGameplayInputFlow.TryCreateMoveInput(
|
||||
"player-1",
|
||||
8,
|
||||
Vector3.zero,
|
||||
true,
|
||||
out var stopInput);
|
||||
var continuedIdle = ClientGameplayInputFlow.TryCreateMoveInput(
|
||||
"player-1",
|
||||
9,
|
||||
Vector3.zero,
|
||||
false,
|
||||
out var idleInput);
|
||||
|
||||
Assert.That(released, Is.True);
|
||||
Assert.That(stopInput, Is.Not.Null);
|
||||
Assert.That(stopInput.PlayerId, Is.EqualTo("player-1"));
|
||||
Assert.That(stopInput.Tick, Is.EqualTo(8));
|
||||
Assert.That(stopInput.MoveX, Is.EqualTo(0f));
|
||||
Assert.That(stopInput.MoveY, Is.EqualTo(0f));
|
||||
Assert.That(continuedIdle, Is.False);
|
||||
Assert.That(idleInput, Is.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ClientGameplayInputFlow_CreateShootInput_UsesSplitShootMessageFields()
|
||||
{
|
||||
var shootInput = ClientGameplayInputFlow.CreateShootInput(
|
||||
"player-1",
|
||||
21,
|
||||
new Vector3(2f, 0f, 0f));
|
||||
|
||||
Assert.That(shootInput.PlayerId, Is.EqualTo("player-1"));
|
||||
Assert.That(shootInput.Tick, Is.EqualTo(21));
|
||||
Assert.That(shootInput.DirX, Is.EqualTo(1f));
|
||||
Assert.That(shootInput.DirY, Is.EqualTo(0f));
|
||||
Assert.That(shootInput.TargetId, Is.EqualTo(string.Empty));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ClientPredictionBuffer_AuthoritativeState_PrunesAcknowledgedMoveInputs()
|
||||
{
|
||||
@@ -149,4 +192,4 @@ namespace Tests.EditMode.Network
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user