Skip to content

Commit 51f6278

Browse files
committed
chore: Add test for unregistering custom message handlers
1 parent 90c00cd commit 51f6278

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

com.unity.netcode.gameobjects/Tests/Runtime/Messaging/NamedMessageTests.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,5 +279,38 @@ public unsafe void ErrorMessageIsPrintedWhenAttemptingToSendNamedMessageWithTooB
279279
Assert.IsTrue(message.Contains($"Given message size ({msgSize} bytes) is greater than the maximum"), $"Unexpected exception: {message}");
280280
}
281281
}
282+
283+
[Test]
284+
public void NamedMessageHandlerIsUnregisteredWithoutException()
285+
{
286+
var messageName = Guid.NewGuid().ToString();
287+
const int numMessagesToSend = 3;
288+
const int expectedMessageHandlerCallCount = 1;
289+
290+
var messageHandlerCalled = 0;
291+
m_ServerNetworkManager.CustomMessagingManager.RegisterNamedMessageHandler(
292+
messageName,
293+
(_, _) =>
294+
{
295+
messageHandlerCalled++;
296+
m_ServerNetworkManager.CustomMessagingManager.UnregisterNamedMessageHandler(messageName);
297+
});
298+
299+
var messageContent = new ForceNetworkSerializeByMemcpy<Guid>(Guid.NewGuid());
300+
var writer = new FastBufferWriter(1300, Allocator.Temp);
301+
using (writer)
302+
{
303+
writer.WriteValueSafe(messageContent);
304+
for (var i = 0; i < numMessagesToSend; i++)
305+
{
306+
m_ServerNetworkManager.CustomMessagingManager.SendNamedMessage(
307+
messageName,
308+
m_ServerNetworkManager.LocalClientId,
309+
writer);
310+
}
311+
}
312+
313+
Assert.AreEqual(expectedMessageHandlerCallCount, messageHandlerCalled);
314+
}
282315
}
283316
}

0 commit comments

Comments
 (0)