@@ -41,17 +41,31 @@ func TestGameState_Participants(t *testing.T) {
41
41
ptcp := gs .Participants ()
42
42
byEntity := ptcp .ByEntityID ()
43
43
byUserID := ptcp .ByUserID ()
44
+ allByUserID := ptcp .AllByUserID ()
44
45
45
46
// Should update ptcp as well since it uses the same map
46
47
gs .playersByEntityID [0 ] = newPlayer ()
47
48
gs .playersByUserID [0 ] = newPlayer ()
48
49
49
50
assert .Equal (t , gs .playersByEntityID , ptcp .ByEntityID ())
50
51
assert .Equal (t , gs .playersByUserID , ptcp .ByUserID ())
52
+ assert .Equal (t , gs .playersByUserID , ptcp .AllByUserID ())
51
53
52
54
// But should not update byEntity or byUserID since they're copies
53
55
assert .NotEqual (t , byEntity , ptcp .ByEntityID ())
54
- assert .NotEqual (t , byUserID , ptcp .ByUserID ())
56
+ byUserID2 := ptcp .ByUserID ()
57
+ assert .NotEqual (t , byUserID , byUserID2 )
58
+ assert .Equal (t , gs .playersByUserID , ptcp .AllByUserID ())
59
+
60
+ gs .playersByEntityID [1 ] = newDisconnectedPlayer ()
61
+ gs .playersByUserID [1 ] = newDisconnectedPlayer ()
62
+
63
+ assert .Equal (t , gs .playersByUserID , ptcp .AllByUserID ())
64
+
65
+ assert .NotEqual (t , byEntity , ptcp .ByEntityID ())
66
+ // Should be equal since ByUserID() do not return disconnected users
67
+ assert .Equal (t , byUserID2 , ptcp .ByUserID ())
68
+ assert .NotEqual (t , allByUserID , ptcp .ByUserID ())
55
69
}
56
70
57
71
func TestGameState_ConVars (t * testing.T ) {
@@ -264,5 +278,13 @@ func newPlayer() *common.Player {
264
278
pl := common .NewPlayer (nil )
265
279
pl .Entity = new (st.Entity )
266
280
pl .IsConnected = true
281
+
282
+ return pl
283
+ }
284
+
285
+ func newDisconnectedPlayer () * common.Player {
286
+ pl := common .NewPlayer (nil )
287
+ pl .Entity = new (st.Entity )
288
+
267
289
return pl
268
290
}
0 commit comments