@@ -49,39 +49,65 @@ protected override IEnumerator OnServerAndClientsConnected()
49
49
yield return null ;
50
50
}
51
51
52
- private void AssertOwnerWritableAreEqualOnAll ( )
52
+ private IEnumerator WaitForPositionsAreEqual ( NetworkVariable < Vector3 > netvar , Vector3 expected )
53
+ {
54
+ yield return WaitForConditionOrTimeOut ( ( ) => netvar . Value == expected ) ;
55
+ Assert . IsFalse ( s_GlobalTimeoutHelper . TimedOut ) ;
56
+ }
57
+
58
+ private IEnumerator WaitForOwnerWritableAreEqualOnAll ( )
59
+ {
60
+ yield return WaitForConditionOrTimeOut ( CheckOwnerWritableAreEqualOnAll ) ;
61
+ Assert . IsFalse ( s_GlobalTimeoutHelper . TimedOut ) ;
62
+ }
63
+
64
+ private bool CheckOwnerWritableAreEqualOnAll ( )
53
65
{
54
66
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
55
67
var testCompServer = testObjServer . GetComponent < NetVarPermTestComp > ( ) ;
56
68
foreach ( var clientNetworkManager in m_ClientNetworkManagers )
57
69
{
58
70
var testObjClient = clientNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
59
71
var testCompClient = testObjClient . GetComponent < NetVarPermTestComp > ( ) ;
60
- Assert . AreEqual ( testObjServer . OwnerClientId , testObjClient . OwnerClientId ) ;
61
- Assert . AreEqual ( testCompServer . OwnerWritable_Position . Value , testCompClient . OwnerWritable_Position . Value ) ;
62
- Assert . AreEqual ( testCompServer . OwnerWritable_Position . ReadPerm , testCompClient . OwnerWritable_Position . ReadPerm ) ;
63
- Assert . AreEqual ( testCompServer . OwnerWritable_Position . WritePerm , testCompClient . OwnerWritable_Position . WritePerm ) ;
72
+ if ( testObjServer . OwnerClientId != testObjClient . OwnerClientId ||
73
+ testCompServer . OwnerWritable_Position . Value != testCompClient . OwnerWritable_Position . Value ||
74
+ testCompServer . OwnerWritable_Position . ReadPerm != testCompClient . OwnerWritable_Position . ReadPerm ||
75
+ testCompServer . OwnerWritable_Position . WritePerm != testCompClient . OwnerWritable_Position . WritePerm )
76
+ {
77
+ return false ;
78
+ }
64
79
}
80
+ return true ;
65
81
}
66
82
67
- private void AssertServerWritableAreEqualOnAll ( )
83
+ private IEnumerator WaitForServerWritableAreEqualOnAll ( )
84
+ {
85
+ yield return WaitForConditionOrTimeOut ( CheckServerWritableAreEqualOnAll ) ;
86
+ Assert . IsFalse ( s_GlobalTimeoutHelper . TimedOut ) ;
87
+ }
88
+
89
+ private bool CheckServerWritableAreEqualOnAll ( )
68
90
{
69
91
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
70
92
var testCompServer = testObjServer . GetComponent < NetVarPermTestComp > ( ) ;
71
93
foreach ( var clientNetworkManager in m_ClientNetworkManagers )
72
94
{
73
95
var testObjClient = clientNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
74
96
var testCompClient = testObjClient . GetComponent < NetVarPermTestComp > ( ) ;
75
- Assert . AreEqual ( testCompServer . ServerWritable_Position . Value , testCompClient . ServerWritable_Position . Value ) ;
76
- Assert . AreEqual ( testCompServer . ServerWritable_Position . ReadPerm , testCompClient . ServerWritable_Position . ReadPerm ) ;
77
- Assert . AreEqual ( testCompServer . ServerWritable_Position . WritePerm , testCompClient . ServerWritable_Position . WritePerm ) ;
97
+ if ( testCompServer . ServerWritable_Position . Value != testCompClient . ServerWritable_Position . Value ||
98
+ testCompServer . ServerWritable_Position . ReadPerm != testCompClient . ServerWritable_Position . ReadPerm ||
99
+ testCompServer . ServerWritable_Position . WritePerm != testCompClient . ServerWritable_Position . WritePerm )
100
+ {
101
+ return false ;
102
+ }
78
103
}
104
+ return true ;
79
105
}
80
106
81
107
[ UnityTest ]
82
108
public IEnumerator ServerChangesOwnerWritableNetVar ( )
83
109
{
84
- AssertOwnerWritableAreEqualOnAll ( ) ;
110
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
85
111
86
112
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
87
113
var testCompServer = testObjServer . GetComponent < NetVarPermTestComp > ( ) ;
@@ -90,16 +116,15 @@ public IEnumerator ServerChangesOwnerWritableNetVar()
90
116
var newValue = oldValue + new Vector3 ( Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) ) ;
91
117
92
118
testCompServer . OwnerWritable_Position . Value = newValue ;
93
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
94
- Assert . AreEqual ( testCompServer . OwnerWritable_Position . Value , newValue ) ;
119
+ yield return WaitForPositionsAreEqual ( testCompServer . OwnerWritable_Position , newValue ) ;
95
120
96
- AssertOwnerWritableAreEqualOnAll ( ) ;
121
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
97
122
}
98
123
99
124
[ UnityTest ]
100
125
public IEnumerator ServerChangesServerWritableNetVar ( )
101
126
{
102
- AssertServerWritableAreEqualOnAll ( ) ;
127
+ yield return WaitForServerWritableAreEqualOnAll ( ) ;
103
128
104
129
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
105
130
var testCompServer = testObjServer . GetComponent < NetVarPermTestComp > ( ) ;
@@ -108,16 +133,15 @@ public IEnumerator ServerChangesServerWritableNetVar()
108
133
var newValue = oldValue + new Vector3 ( Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) ) ;
109
134
110
135
testCompServer . ServerWritable_Position . Value = newValue ;
111
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
112
- Assert . AreEqual ( testCompServer . ServerWritable_Position . Value , newValue ) ;
136
+ yield return WaitForPositionsAreEqual ( testCompServer . ServerWritable_Position , newValue ) ;
113
137
114
- AssertServerWritableAreEqualOnAll ( ) ;
138
+ yield return WaitForServerWritableAreEqualOnAll ( ) ;
115
139
}
116
140
117
141
[ UnityTest ]
118
142
public IEnumerator ClientChangesOwnerWritableNetVar ( )
119
143
{
120
- AssertOwnerWritableAreEqualOnAll ( ) ;
144
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
121
145
122
146
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
123
147
@@ -126,7 +150,7 @@ public IEnumerator ClientChangesOwnerWritableNetVar()
126
150
testObjServer . ChangeOwnership ( newOwnerClientId ) ;
127
151
yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
128
152
129
- AssertOwnerWritableAreEqualOnAll ( ) ;
153
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
130
154
131
155
var testObjClient = m_ClientNetworkManagers [ clientManagerIndex ] . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
132
156
var testCompClient = testObjClient . GetComponent < NetVarPermTestComp > ( ) ;
@@ -135,16 +159,15 @@ public IEnumerator ClientChangesOwnerWritableNetVar()
135
159
var newValue = oldValue + new Vector3 ( Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) ) ;
136
160
137
161
testCompClient . OwnerWritable_Position . Value = newValue ;
138
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ClientNetworkManagers [ clientManagerIndex ] , 4 ) ;
139
- Assert . AreEqual ( testCompClient . OwnerWritable_Position . Value , newValue ) ;
162
+ yield return WaitForPositionsAreEqual ( testCompClient . OwnerWritable_Position , newValue ) ;
140
163
141
- AssertOwnerWritableAreEqualOnAll ( ) ;
164
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
142
165
}
143
166
144
167
[ UnityTest ]
145
168
public IEnumerator ClientCannotChangeServerWritableNetVar ( )
146
169
{
147
- AssertServerWritableAreEqualOnAll ( ) ;
170
+ yield return WaitForServerWritableAreEqualOnAll ( ) ;
148
171
149
172
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
150
173
var testCompServer = testObjServer . GetComponent < NetVarPermTestComp > ( ) ;
@@ -154,7 +177,7 @@ public IEnumerator ClientCannotChangeServerWritableNetVar()
154
177
testObjServer . ChangeOwnership ( newOwnerClientId ) ;
155
178
yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
156
179
157
- AssertServerWritableAreEqualOnAll ( ) ;
180
+ yield return WaitForServerWritableAreEqualOnAll ( ) ;
158
181
159
182
var testObjClient = m_ClientNetworkManagers [ clientManagerIndex ] . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
160
183
var testCompClient = testObjClient . GetComponent < NetVarPermTestComp > ( ) ;
@@ -163,22 +186,20 @@ public IEnumerator ClientCannotChangeServerWritableNetVar()
163
186
var newValue = oldValue + new Vector3 ( Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) ) ;
164
187
165
188
Assert . That ( ( ) => testCompClient . ServerWritable_Position . Value = newValue , Throws . TypeOf < InvalidOperationException > ( ) ) ;
166
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ClientNetworkManagers [ clientManagerIndex ] , 4 ) ;
167
- Assert . AreEqual ( testCompServer . ServerWritable_Position . Value , oldValue ) ;
189
+ yield return WaitForPositionsAreEqual ( testCompServer . ServerWritable_Position , oldValue ) ;
168
190
169
- AssertServerWritableAreEqualOnAll ( ) ;
191
+ yield return WaitForServerWritableAreEqualOnAll ( ) ;
170
192
171
193
testCompServer . ServerWritable_Position . Value = newValue ;
172
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
173
- Assert . AreEqual ( testCompServer . ServerWritable_Position . Value , newValue ) ;
194
+ yield return WaitForPositionsAreEqual ( testCompServer . ServerWritable_Position , newValue ) ;
174
195
175
- AssertServerWritableAreEqualOnAll ( ) ;
196
+ yield return WaitForServerWritableAreEqualOnAll ( ) ;
176
197
}
177
198
178
199
[ UnityTest ]
179
200
public IEnumerator ServerCannotChangeOwnerWritableNetVar ( )
180
201
{
181
- AssertOwnerWritableAreEqualOnAll ( ) ;
202
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
182
203
183
204
var testObjServer = m_ServerNetworkManager . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
184
205
var testCompServer = testObjServer . GetComponent < NetVarPermTestComp > ( ) ;
@@ -188,25 +209,23 @@ public IEnumerator ServerCannotChangeOwnerWritableNetVar()
188
209
testObjServer . ChangeOwnership ( newOwnerClientId ) ;
189
210
yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
190
211
191
- AssertOwnerWritableAreEqualOnAll ( ) ;
212
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
192
213
193
214
var oldValue = testCompServer . OwnerWritable_Position . Value ;
194
215
var newValue = oldValue + new Vector3 ( Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) , Random . Range ( 0 , 100.0f ) ) ;
195
216
196
217
Assert . That ( ( ) => testCompServer . OwnerWritable_Position . Value = newValue , Throws . TypeOf < InvalidOperationException > ( ) ) ;
197
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ServerNetworkManager , 2 ) ;
198
- Assert . AreEqual ( testCompServer . OwnerWritable_Position . Value , oldValue ) ;
218
+ yield return WaitForPositionsAreEqual ( testCompServer . OwnerWritable_Position , oldValue ) ;
199
219
200
- AssertOwnerWritableAreEqualOnAll ( ) ;
220
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
201
221
202
222
var testObjClient = m_ClientNetworkManagers [ clientManagerIndex ] . SpawnManager . SpawnedObjects [ m_TestObjId ] ;
203
223
var testCompClient = testObjClient . GetComponent < NetVarPermTestComp > ( ) ;
204
224
205
225
testCompClient . OwnerWritable_Position . Value = newValue ;
206
- yield return NetcodeIntegrationTestHelpers . WaitForTicks ( m_ClientNetworkManagers [ clientManagerIndex ] , 4 ) ;
207
- Assert . AreEqual ( testCompClient . OwnerWritable_Position . Value , newValue ) ;
226
+ yield return WaitForPositionsAreEqual ( testCompClient . OwnerWritable_Position , newValue ) ;
208
227
209
- AssertOwnerWritableAreEqualOnAll ( ) ;
228
+ yield return WaitForOwnerWritableAreEqualOnAll ( ) ;
210
229
}
211
230
}
212
231
0 commit comments