@@ -17,6 +17,23 @@ public class ConnectionTests
1717 private List < TransportEvent > m_ServerEvents ;
1818 private List < TransportEvent > [ ] m_ClientsEvents = new List < TransportEvent > [ k_NumClients ] ;
1919
20+ private IEnumerator WaitForAllClientsConnected ( )
21+ {
22+ for ( int i = 0 ; i < k_NumClients ; i ++ )
23+ {
24+ if ( m_ClientsEvents [ i ] . Count == 0 )
25+ {
26+ yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ClientsEvents [ i ] ) ;
27+ }
28+ }
29+
30+ // Check that all clients received the correct event.
31+ Assert . That ( m_ClientsEvents . All ( evs => evs [ 0 ] . Type == NetworkEvent . Connect ) ) ;
32+
33+ // Check that server received all Connect events.
34+ Assert . AreEqual ( k_NumClients , m_ServerEvents . Count ) ;
35+ }
36+
2037 [ UnityTearDown ]
2138 public IEnumerator Cleanup ( )
2239 {
@@ -56,11 +73,11 @@ public IEnumerator ConnectSingleClient()
5673 m_Server . StartServer ( ) ;
5774 m_Clients [ 0 ] . StartClient ( ) ;
5875
59- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
76+ yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ClientsEvents [ 0 ] ) ;
6077
61- // Check we've received Connect event on client too.
62- Assert . AreEqual ( 1 , m_ClientsEvents [ 0 ] . Count ) ;
63- Assert . AreEqual ( NetworkEvent . Connect , m_ClientsEvents [ 0 ] [ 0 ] . Type ) ;
78+ // Check we've received Connect event on server too.
79+ Assert . AreEqual ( 1 , m_ServerEvents . Count ) ;
80+ Assert . AreEqual ( NetworkEvent . Connect , m_ServerEvents [ 0 ] . Type ) ;
6481
6582 yield return null ;
6683 }
@@ -79,11 +96,7 @@ public IEnumerator ConnectMultipleClients()
7996 m_Clients [ i ] . StartClient ( ) ;
8097 }
8198
82- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
83-
84- // Check that every client also received a Connect event.
85- Assert . True ( m_ClientsEvents . All ( evs => evs . Count == 1 ) ) ;
86- Assert . True ( m_ClientsEvents . All ( evs => evs [ 0 ] . Type == NetworkEvent . Connect ) ) ;
99+ yield return WaitForAllClientsConnected ( ) ;
87100
88101 yield return null ;
89102 }
@@ -98,7 +111,7 @@ public IEnumerator ServerDisconnectSingleClient()
98111 m_Server . StartServer ( ) ;
99112 m_Clients [ 0 ] . StartClient ( ) ;
100113
101- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
114+ yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ClientsEvents [ 0 ] ) ;
102115
103116 m_Server . DisconnectRemoteClient ( m_ServerEvents [ 0 ] . ClientID ) ;
104117
@@ -120,7 +133,7 @@ public IEnumerator ServerDisconnectMultipleClients()
120133 m_Clients [ i ] . StartClient ( ) ;
121134 }
122135
123- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
136+ yield return WaitForAllClientsConnected ( ) ;
124137
125138 // Disconnect a single client.
126139 m_Server . DisconnectRemoteClient ( m_ServerEvents [ 0 ] . ClientID ) ;
@@ -141,8 +154,8 @@ public IEnumerator ServerDisconnectMultipleClients()
141154 yield return new WaitForSeconds ( MaxNetworkEventWaitTime ) ;
142155
143156 // Check that all clients got a Disconnect event.
144- Assert . True ( m_ClientsEvents . All ( evs => evs . Count == 2 ) ) ;
145- Assert . True ( m_ClientsEvents . All ( evs => evs [ 1 ] . Type == NetworkEvent . Disconnect ) ) ;
157+ Assert . That ( m_ClientsEvents . All ( evs => evs . Count == 2 ) ) ;
158+ Assert . That ( m_ClientsEvents . All ( evs => evs [ 1 ] . Type == NetworkEvent . Disconnect ) ) ;
146159
147160 yield return null ;
148161 }
@@ -157,7 +170,7 @@ public IEnumerator ClientDisconnectSingleClient()
157170 m_Server . StartServer ( ) ;
158171 m_Clients [ 0 ] . StartClient ( ) ;
159172
160- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
173+ yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ClientsEvents [ 0 ] ) ;
161174
162175 m_Clients [ 0 ] . DisconnectLocalClient ( ) ;
163176
@@ -177,7 +190,7 @@ public IEnumerator ClientDisconnectMultipleClients()
177190 m_Clients [ i ] . StartClient ( ) ;
178191 }
179192
180- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
193+ yield return WaitForAllClientsConnected ( ) ;
181194
182195 // Disconnect a single client.
183196 m_Clients [ 0 ] . DisconnectLocalClient ( ) ;
@@ -209,7 +222,7 @@ public IEnumerator RepeatedServerDisconnectsNoop()
209222 m_Server . StartServer ( ) ;
210223 m_Clients [ 0 ] . StartClient ( ) ;
211224
212- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
225+ yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ClientsEvents [ 0 ] ) ;
213226
214227 m_Server . DisconnectRemoteClient ( m_ServerEvents [ 0 ] . ClientID ) ;
215228
@@ -241,7 +254,7 @@ public IEnumerator RepeatedClientDisconnectsNoop()
241254 m_Server . StartServer ( ) ;
242255 m_Clients [ 0 ] . StartClient ( ) ;
243256
244- yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ServerEvents ) ;
257+ yield return WaitForNetworkEvent ( NetworkEvent . Connect , m_ClientsEvents [ 0 ] ) ;
245258
246259 m_Clients [ 0 ] . DisconnectLocalClient ( ) ;
247260
0 commit comments