33using System . Collections . Generic ;
44using NUnit . Framework ;
55using Unity . Collections ;
6- using UnityEngine ;
76using UnityEngine . TestTools ;
87using Unity . Netcode . TestHelpers . Runtime ;
98
@@ -27,6 +26,18 @@ protected override NetworkManagerInstatiationMode OnSetIntegrationTestMode()
2726 public IEnumerator NamedMessageIsReceivedOnClientWithContent ( )
2827 {
2928 var messageName = Guid . NewGuid ( ) . ToString ( ) ;
29+
30+ ulong receivedMessageSender = 0 ;
31+ var receivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
32+ FirstClient . CustomMessagingManager . RegisterNamedMessageHandler (
33+ messageName ,
34+ ( ulong sender , FastBufferReader reader ) =>
35+ {
36+ receivedMessageSender = sender ;
37+
38+ reader . ReadValueSafe ( out receivedMessageContent ) ;
39+ } ) ;
40+
3041 var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
3142 var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
3243 using ( writer )
@@ -38,9 +49,20 @@ public IEnumerator NamedMessageIsReceivedOnClientWithContent()
3849 writer ) ;
3950 }
4051
52+ yield return WaitForMessageReceived < NamedMessage > ( new List < NetworkManager > { FirstClient } ) ;
53+
54+ Assert . AreEqual ( messageContent . Value , receivedMessageContent . Value ) ;
55+ Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , receivedMessageSender ) ;
56+ }
57+
58+ [ Test ]
59+ public void NamedMessageIsReceivedOnHostWithContent ( )
60+ {
61+ var messageName = Guid . NewGuid ( ) . ToString ( ) ;
62+
4163 ulong receivedMessageSender = 0 ;
4264 var receivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
43- FirstClient . CustomMessagingManager . RegisterNamedMessageHandler (
65+ m_ServerNetworkManager . CustomMessagingManager . RegisterNamedMessageHandler (
4466 messageName ,
4567 ( ulong sender , FastBufferReader reader ) =>
4668 {
@@ -49,27 +71,26 @@ public IEnumerator NamedMessageIsReceivedOnClientWithContent()
4971 reader . ReadValueSafe ( out receivedMessageContent ) ;
5072 } ) ;
5173
52- yield return new WaitForSeconds ( 0.2f ) ;
53-
54- Assert . AreEqual ( messageContent . Value , receivedMessageContent . Value ) ;
55- Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , receivedMessageSender ) ;
56- }
57-
58- [ UnityTest ]
59- public IEnumerator NamedMessageIsReceivedOnMultipleClientsWithContent ( )
60- {
61- var messageName = Guid . NewGuid ( ) . ToString ( ) ;
6274 var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
6375 var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
6476 using ( writer )
6577 {
6678 writer . WriteValueSafe ( messageContent ) ;
6779 m_ServerNetworkManager . CustomMessagingManager . SendNamedMessage (
6880 messageName ,
69- new List < ulong > { FirstClient . LocalClientId , SecondClient . LocalClientId } ,
81+ m_ServerNetworkManager . LocalClientId ,
7082 writer ) ;
7183 }
7284
85+ Assert . AreEqual ( messageContent . Value , receivedMessageContent . Value ) ;
86+ Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , receivedMessageSender ) ;
87+ }
88+
89+ [ UnityTest ]
90+ public IEnumerator NamedMessageIsReceivedOnMultipleClientsWithContent ( )
91+ {
92+ var messageName = Guid . NewGuid ( ) . ToString ( ) ;
93+
7394 ulong firstReceivedMessageSender = 0 ;
7495 var firstReceivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
7596 FirstClient . CustomMessagingManager . RegisterNamedMessageHandler (
@@ -92,26 +113,44 @@ public IEnumerator NamedMessageIsReceivedOnMultipleClientsWithContent()
92113 reader . ReadValueSafe ( out secondReceivedMessageContent ) ;
93114 } ) ;
94115
95- yield return new WaitForSeconds ( 0.2f ) ;
116+ ulong thirdReceivedMessageSender = 0 ;
117+ var thirdReceivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
118+ m_ServerNetworkManager . CustomMessagingManager . RegisterNamedMessageHandler (
119+ messageName ,
120+ ( ulong sender , FastBufferReader reader ) =>
121+ {
122+ thirdReceivedMessageSender = sender ;
123+
124+ reader . ReadValueSafe ( out thirdReceivedMessageContent ) ;
125+ } ) ;
126+
127+ var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
128+ var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
129+ using ( writer )
130+ {
131+ writer . WriteValueSafe ( messageContent ) ;
132+ m_ServerNetworkManager . CustomMessagingManager . SendNamedMessage (
133+ messageName ,
134+ new List < ulong > { m_ServerNetworkManager . LocalClientId , FirstClient . LocalClientId , SecondClient . LocalClientId } ,
135+ writer ) ;
136+ }
137+
138+ yield return WaitForMessageReceived < NamedMessage > ( new List < NetworkManager > { FirstClient , SecondClient } ) ;
96139
97140 Assert . AreEqual ( messageContent . Value , firstReceivedMessageContent . Value ) ;
98141 Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , firstReceivedMessageSender ) ;
99142
100143 Assert . AreEqual ( messageContent . Value , secondReceivedMessageContent . Value ) ;
101144 Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , secondReceivedMessageSender ) ;
145+
146+ Assert . AreEqual ( messageContent . Value , thirdReceivedMessageContent . Value ) ;
147+ Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , thirdReceivedMessageSender ) ;
102148 }
103149
104150 [ UnityTest ]
105151 public IEnumerator WhenSendingNamedMessageToAll_AllClientsReceiveIt ( )
106152 {
107153 var messageName = Guid . NewGuid ( ) . ToString ( ) ;
108- var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
109- var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
110- using ( writer )
111- {
112- writer . WriteValueSafe ( messageContent ) ;
113- m_ServerNetworkManager . CustomMessagingManager . SendNamedMessageToAll ( messageName , writer ) ;
114- }
115154
116155 ulong firstReceivedMessageSender = 0 ;
117156 var firstReceivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
@@ -135,13 +174,35 @@ public IEnumerator WhenSendingNamedMessageToAll_AllClientsReceiveIt()
135174 reader . ReadValueSafe ( out secondReceivedMessageContent ) ;
136175 } ) ;
137176
138- yield return new WaitForSeconds ( 0.2f ) ;
177+ ulong thirdReceivedMessageSender = 0 ;
178+ var thirdReceivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
179+ m_ServerNetworkManager . CustomMessagingManager . RegisterNamedMessageHandler (
180+ messageName ,
181+ ( ulong sender , FastBufferReader reader ) =>
182+ {
183+ thirdReceivedMessageSender = sender ;
184+
185+ reader . ReadValueSafe ( out thirdReceivedMessageContent ) ;
186+ } ) ;
187+
188+ var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
189+ var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
190+ using ( writer )
191+ {
192+ writer . WriteValueSafe ( messageContent ) ;
193+ m_ServerNetworkManager . CustomMessagingManager . SendNamedMessageToAll ( messageName , writer ) ;
194+ }
195+
196+ yield return WaitForMessageReceived < NamedMessage > ( new List < NetworkManager > { FirstClient , SecondClient } ) ;
139197
140198 Assert . AreEqual ( messageContent . Value , firstReceivedMessageContent . Value ) ;
141199 Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , firstReceivedMessageSender ) ;
142200
143201 Assert . AreEqual ( messageContent . Value , secondReceivedMessageContent . Value ) ;
144202 Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , secondReceivedMessageSender ) ;
203+
204+ Assert . AreEqual ( messageContent . Value , thirdReceivedMessageContent . Value ) ;
205+ Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , thirdReceivedMessageSender ) ;
145206 }
146207
147208 [ Test ]
0 commit comments