3
3
using System . Collections . Generic ;
4
4
using NUnit . Framework ;
5
5
using Unity . Collections ;
6
- using UnityEngine ;
7
6
using UnityEngine . TestTools ;
8
7
using Unity . Netcode . TestHelpers . Runtime ;
9
8
@@ -27,6 +26,18 @@ protected override NetworkManagerInstatiationMode OnSetIntegrationTestMode()
27
26
public IEnumerator NamedMessageIsReceivedOnClientWithContent ( )
28
27
{
29
28
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
+
30
41
var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
31
42
var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
32
43
using ( writer )
@@ -38,9 +49,20 @@ public IEnumerator NamedMessageIsReceivedOnClientWithContent()
38
49
writer ) ;
39
50
}
40
51
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
+
41
63
ulong receivedMessageSender = 0 ;
42
64
var receivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
43
- FirstClient . CustomMessagingManager . RegisterNamedMessageHandler (
65
+ m_ServerNetworkManager . CustomMessagingManager . RegisterNamedMessageHandler (
44
66
messageName ,
45
67
( ulong sender , FastBufferReader reader ) =>
46
68
{
@@ -49,27 +71,26 @@ public IEnumerator NamedMessageIsReceivedOnClientWithContent()
49
71
reader . ReadValueSafe ( out receivedMessageContent ) ;
50
72
} ) ;
51
73
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 ( ) ;
62
74
var messageContent = new ForceNetworkSerializeByMemcpy < Guid > ( Guid . NewGuid ( ) ) ;
63
75
var writer = new FastBufferWriter ( 1300 , Allocator . Temp ) ;
64
76
using ( writer )
65
77
{
66
78
writer . WriteValueSafe ( messageContent ) ;
67
79
m_ServerNetworkManager . CustomMessagingManager . SendNamedMessage (
68
80
messageName ,
69
- new List < ulong > { FirstClient . LocalClientId , SecondClient . LocalClientId } ,
81
+ m_ServerNetworkManager . LocalClientId ,
70
82
writer ) ;
71
83
}
72
84
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
+
73
94
ulong firstReceivedMessageSender = 0 ;
74
95
var firstReceivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
75
96
FirstClient . CustomMessagingManager . RegisterNamedMessageHandler (
@@ -92,26 +113,44 @@ public IEnumerator NamedMessageIsReceivedOnMultipleClientsWithContent()
92
113
reader . ReadValueSafe ( out secondReceivedMessageContent ) ;
93
114
} ) ;
94
115
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 } ) ;
96
139
97
140
Assert . AreEqual ( messageContent . Value , firstReceivedMessageContent . Value ) ;
98
141
Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , firstReceivedMessageSender ) ;
99
142
100
143
Assert . AreEqual ( messageContent . Value , secondReceivedMessageContent . Value ) ;
101
144
Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , secondReceivedMessageSender ) ;
145
+
146
+ Assert . AreEqual ( messageContent . Value , thirdReceivedMessageContent . Value ) ;
147
+ Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , thirdReceivedMessageSender ) ;
102
148
}
103
149
104
150
[ UnityTest ]
105
151
public IEnumerator WhenSendingNamedMessageToAll_AllClientsReceiveIt ( )
106
152
{
107
153
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
- }
115
154
116
155
ulong firstReceivedMessageSender = 0 ;
117
156
var firstReceivedMessageContent = new ForceNetworkSerializeByMemcpy < Guid > ( new Guid ( ) ) ;
@@ -135,13 +174,35 @@ public IEnumerator WhenSendingNamedMessageToAll_AllClientsReceiveIt()
135
174
reader . ReadValueSafe ( out secondReceivedMessageContent ) ;
136
175
} ) ;
137
176
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 } ) ;
139
197
140
198
Assert . AreEqual ( messageContent . Value , firstReceivedMessageContent . Value ) ;
141
199
Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , firstReceivedMessageSender ) ;
142
200
143
201
Assert . AreEqual ( messageContent . Value , secondReceivedMessageContent . Value ) ;
144
202
Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , secondReceivedMessageSender ) ;
203
+
204
+ Assert . AreEqual ( messageContent . Value , thirdReceivedMessageContent . Value ) ;
205
+ Assert . AreEqual ( m_ServerNetworkManager . LocalClientId , thirdReceivedMessageSender ) ;
145
206
}
146
207
147
208
[ Test ]
0 commit comments