Skip to content

Commit 4e88875

Browse files
authored
fix: Fixes for Deferred Messaging Tests [MTT-5102] (#2319)
1 parent fb4af33 commit 4e88875

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

com.unity.netcode.gameobjects/TestHelpers/Runtime/MessageHooks.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void OnBeforeReceiveMessage(ulong senderId, Type messageType, int message
4444

4545
public void OnAfterReceiveMessage(ulong senderId, Type messageType, int messageSizeBytes)
4646
{
47-
if (!CurrentMessageHasTriggerdAHook && IsWaiting && (HandleCheck == null || HandleCheck.Invoke(messageType)))
47+
if (!CurrentMessageHasTriggerdAHook && IsWaiting && ReceiptCheck != null && ReceiptCheck.Invoke(messageType))
4848
{
4949
IsWaiting = false;
5050
CurrentMessageHasTriggerdAHook = true;
@@ -92,7 +92,7 @@ public void OnBeforeHandleMessage<T>(ref T message, ref NetworkContext context)
9292

9393
public void OnAfterHandleMessage<T>(ref T message, ref NetworkContext context) where T : INetworkMessage
9494
{
95-
if (!CurrentMessageHasTriggerdAHook && IsWaiting && (HandleCheck == null || HandleCheck.Invoke(message)))
95+
if (!CurrentMessageHasTriggerdAHook && IsWaiting && HandleCheck != null && HandleCheck.Invoke(message))
9696
{
9797
IsWaiting = false;
9898
CurrentMessageHasTriggerdAHook = true;

com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,11 @@ protected IEnumerator CreateAndStartNewClient()
331331

332332
NetcodeIntegrationTestHelpers.StartOneClient(networkManager);
333333

334+
if (LogAllMessages)
335+
{
336+
networkManager.MessagingSystem.Hook(new DebugNetworkHooks());
337+
}
338+
334339
AddRemoveNetworkManager(networkManager, true);
335340

336341
OnNewClientStarted(networkManager);

com.unity.netcode.gameobjects/Tests/Runtime/DeferredMessagingTests.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,8 @@ bool HaveAllClientsSpawned()
639639
}
640640
}
641641

642+
protected override bool LogAllMessages => true;
643+
642644
[UnityTest]
643645
public IEnumerator WhenMultipleSpawnTriggeredMessagesAreDeferred_TheyAreAllProcessedOnSpawn()
644646
{
@@ -658,17 +660,17 @@ public IEnumerator WhenMultipleSpawnTriggeredMessagesAreDeferred_TheyAreAllProce
658660

659661
serverObject.GetComponent<NetworkObject>().ChangeOwnership(m_ClientNetworkManagers[0].LocalClientId);
660662

661-
yield return WaitForAllClientsToReceive<ChangeOwnershipMessage>();
663+
yield return WaitForAllClientsToReceive<ChangeOwnershipMessage, NetworkVariableDeltaMessage>();
662664

663665
foreach (var client in m_ClientNetworkManagers)
664666
{
665667
var manager = (TestDeferredMessageManager)client.DeferredMessageManager;
666668
Assert.IsTrue(manager.DeferMessageCalled);
667669
Assert.IsFalse(manager.ProcessTriggersCalled);
668670

669-
Assert.AreEqual(3, manager.DeferredMessageCountTotal());
670-
Assert.AreEqual(3, manager.DeferredMessageCountForType(IDeferredMessageManager.TriggerType.OnSpawn));
671-
Assert.AreEqual(3, manager.DeferredMessageCountForKey(IDeferredMessageManager.TriggerType.OnSpawn, serverObject.GetComponent<NetworkObject>().NetworkObjectId));
671+
Assert.AreEqual(4, manager.DeferredMessageCountTotal());
672+
Assert.AreEqual(4, manager.DeferredMessageCountForType(IDeferredMessageManager.TriggerType.OnSpawn));
673+
Assert.AreEqual(4, manager.DeferredMessageCountForKey(IDeferredMessageManager.TriggerType.OnSpawn, serverObject.GetComponent<NetworkObject>().NetworkObjectId));
672674
Assert.AreEqual(0, manager.DeferredMessageCountForType(IDeferredMessageManager.TriggerType.OnAddPrefab));
673675
AddPrefabsToClient(client);
674676
}
@@ -796,10 +798,6 @@ public IEnumerator WhenSpawnTriggeredMessagesAreDeferredBeforeThePrefabIsAdded_A
796798

797799
yield return WaitForAllClientsToReceive<ChangeOwnershipMessage, NetworkVariableDeltaMessage>();
798800

799-
// wait three ticks
800-
yield return NetcodeIntegrationTestHelpers.WaitForTicks(m_ServerNetworkManager, 3);
801-
yield return NetcodeIntegrationTestHelpers.WaitForTicks(m_ClientNetworkManagers[0], 3);
802-
803801
// Validate messages are deferred and pending
804802
foreach (var client in m_ClientNetworkManagers)
805803
{

0 commit comments

Comments
 (0)