Skip to content

Commit a279890

Browse files
test
Adding test to verify this fix.
1 parent df80bac commit a279890

File tree

1 file changed

+48
-16
lines changed

1 file changed

+48
-16
lines changed

com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariableTraitsTests.cs

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ namespace Unity.Netcode.RuntimeTests
88
public class NetworkVariableTraitsComponent : NetworkBehaviour
99
{
1010
public NetworkVariable<float> TheVariable = new NetworkVariable<float>();
11+
public NetworkVariable<float> AnotherVariable = new NetworkVariable<float>();
1112
}
1213

1314
public class NetworkVariableTraitsTests : NetcodeIntegrationTest
@@ -52,9 +53,10 @@ public void WhenNewValueIsLessThanThreshold_VariableIsNotSerialized()
5253

5354
TimeTravel(2, 120);
5455

55-
Assert.AreEqual(0.05f, serverComponent.TheVariable.Value); ;
56-
Assert.AreEqual(0, testComponent.TheVariable.Value); ;
56+
Assert.AreEqual(0.05f, serverComponent.TheVariable.Value);
57+
Assert.AreEqual(0, testComponent.TheVariable.Value);
5758
}
59+
5860
[Test]
5961
public void WhenNewValueIsGreaterThanThreshold_VariableIsSerialized()
6062
{
@@ -66,8 +68,8 @@ public void WhenNewValueIsGreaterThanThreshold_VariableIsSerialized()
6668

6769
TimeTravel(2, 120);
6870

69-
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value); ;
70-
Assert.AreEqual(0.15f, testComponent.TheVariable.Value); ;
71+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
72+
Assert.AreEqual(0.15f, testComponent.TheVariable.Value);
7173
}
7274

7375
[Test]
@@ -83,13 +85,13 @@ public void WhenNewValueIsLessThanThresholdButMaxTimeHasPassed_VariableIsSeriali
8385

8486
TimeTravel(1 / 60f * 119, 119);
8587

86-
Assert.AreEqual(0.05f, serverComponent.TheVariable.Value); ;
87-
Assert.AreEqual(0, testComponent.TheVariable.Value); ;
88+
Assert.AreEqual(0.05f, serverComponent.TheVariable.Value);
89+
Assert.AreEqual(0, testComponent.TheVariable.Value);
8890

8991
TimeTravel(1 / 60f * 4, 4);
9092

91-
Assert.AreEqual(0.05f, serverComponent.TheVariable.Value); ;
92-
Assert.AreEqual(0.05f, testComponent.TheVariable.Value); ;
93+
Assert.AreEqual(0.05f, serverComponent.TheVariable.Value);
94+
Assert.AreEqual(0.05f, testComponent.TheVariable.Value);
9395
}
9496

9597
[Test]
@@ -105,13 +107,13 @@ public void WhenNewValueIsGreaterThanThresholdButMinTimeHasNotPassed_VariableIsN
105107

106108
TimeTravel(1 / 60f * 119, 119);
107109

108-
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value); ;
109-
Assert.AreEqual(0, testComponent.TheVariable.Value); ;
110+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
111+
Assert.AreEqual(0, testComponent.TheVariable.Value);
110112

111113
TimeTravel(1 / 60f * 4, 4);
112114

113-
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value); ;
114-
Assert.AreEqual(0.15f, testComponent.TheVariable.Value); ;
115+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
116+
Assert.AreEqual(0.15f, testComponent.TheVariable.Value);
115117
}
116118

117119
[Test]
@@ -126,13 +128,43 @@ public void WhenNoThresholdIsSetButMinTimeHasNotPassed_VariableIsNotSerialized()
126128

127129
TimeTravel(1 / 60f * 119, 119);
128130

129-
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value); ;
130-
Assert.AreEqual(0, testComponent.TheVariable.Value); ;
131+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
132+
Assert.AreEqual(0, testComponent.TheVariable.Value);
133+
134+
TimeTravel(1 / 60f * 4, 4);
135+
136+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
137+
Assert.AreEqual(0.15f, testComponent.TheVariable.Value);
138+
}
131139

140+
[Test]
141+
public void WhenNonTraitsIsDirtyButTraitsIsNotReadyToSend()
142+
{
143+
var serverComponent = GetServerComponent();
144+
var testComponent = GetTestComponent();
145+
serverComponent.TheVariable.SetUpdateTraits(new NetworkVariableUpdateTraits { MinSecondsBetweenUpdates = 2 });
146+
serverComponent.TheVariable.LastUpdateSent = m_ServerNetworkManager.NetworkTimeSystem.LocalTime;
147+
148+
serverComponent.TheVariable.Value = 0.15f;
149+
// Set the non-traits NetworkVariable value
150+
serverComponent.AnotherVariable.Value = 1.0f;
151+
152+
TimeTravel(1 / 60f * 119, 119);
153+
// We don't expect the traits NetworkVariable to update
154+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
155+
Assert.AreEqual(0, testComponent.TheVariable.Value);
156+
// We should expect the non-traits NetworkVariable to update
157+
Assert.AreEqual(1.0f, serverComponent.AnotherVariable.Value);
158+
Assert.AreEqual(1.0f, testComponent.AnotherVariable.Value);
159+
160+
serverComponent.AnotherVariable.Value = 1.5f;
132161
TimeTravel(1 / 60f * 4, 4);
133162

134-
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value); ;
135-
Assert.AreEqual(0.15f, testComponent.TheVariable.Value); ;
163+
// We should expect both NetworkVariables to update
164+
Assert.AreEqual(0.15f, serverComponent.TheVariable.Value);
165+
Assert.AreEqual(0.15f, testComponent.TheVariable.Value);
166+
Assert.AreEqual(1.5f, serverComponent.AnotherVariable.Value);
167+
Assert.AreEqual(1.5f, testComponent.AnotherVariable.Value);
136168
}
137169
}
138170
}

0 commit comments

Comments
 (0)