Skip to content

Commit 089341d

Browse files
authored
Move common metrics test initialization to utility class (#973)
1 parent 954d983 commit 089341d

18 files changed

+206
-187
lines changed

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/MessagingMetricsTests.cs

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.IO;
55
using System.Linq;
66
using MLAPI.Metrics;
7+
using MLAPI.RuntimeTests.Metrics.Utility;
78
using MLAPI.Serialization;
89
using NUnit.Framework;
910
using Unity.Multiplayer.MetricTypes;
@@ -23,25 +24,15 @@ public class MessagingMetricsTests
2324
[UnitySetUp]
2425
public IEnumerator SetUp()
2526
{
26-
if (!MultiInstanceHelpers.Create(2, out m_Server, out var clients))
27-
{
28-
Debug.LogError("Failed to create instances");
29-
Assert.Fail("Failed to create instances");
30-
}
31-
32-
if (!MultiInstanceHelpers.Start(true, m_Server, clients))
33-
{
34-
Debug.LogError("Failed to start instances");
35-
Assert.Fail("Failed to start instances");
36-
}
27+
var initializer = new DualClientMetricTestInitializer();
3728

38-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
39-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
29+
yield return initializer.Initialize();
4030

41-
m_FirstClient = clients[0];
42-
m_SecondClient = clients[1];
43-
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
44-
m_FirstClientMetrics = m_FirstClient.NetworkMetrics as NetworkMetrics;
31+
m_Server = initializer.Server;
32+
m_FirstClient = initializer.FirstClient;
33+
m_SecondClient = initializer.SecondClient;
34+
m_ServerMetrics = initializer.ServerMetrics;
35+
m_FirstClientMetrics = initializer.FirstClientMetrics;
4536
}
4637

4738
[UnityTearDown]

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/RPC/NetworkMetricsRpcTests.cs renamed to com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/NetworkMetricsRpcTests.cs

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using System.Collections;
22
using System.Linq;
33
using MLAPI.Metrics;
4+
using MLAPI.RuntimeTests.Metrics.Utility;
45
using NUnit.Framework;
56
using Unity.Multiplayer.MetricTypes;
67
using UnityEngine;
78
using UnityEngine.TestTools;
89

9-
namespace MLAPI.RuntimeTests.Metrics.RPC
10+
namespace MLAPI.RuntimeTests.Metrics
1011
{
1112
public class NetworkMetricsRpcTests
1213
{
@@ -18,32 +19,14 @@ public class NetworkMetricsRpcTests
1819
[UnitySetUp]
1920
public IEnumerator SetUp()
2021
{
21-
if (!MultiInstanceHelpers.Create(1, out m_Server, out NetworkManager[] clients))
22-
{
23-
Assert.Fail("Failed to create instances");
24-
}
25-
26-
var playerPrefab = new GameObject("Player");
27-
NetworkObject networkObject = playerPrefab.AddComponent<NetworkObject>();
28-
playerPrefab.AddComponent<RpcTestComponent>();
29-
30-
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);
31-
32-
m_Server.NetworkConfig.PlayerPrefab = playerPrefab;
33-
m_Client = clients.First();
34-
35-
m_Client.NetworkConfig.PlayerPrefab = playerPrefab;
36-
37-
if (!MultiInstanceHelpers.Start(true, m_Server, clients))
38-
{
39-
Assert.Fail("Failed to start instances");
40-
}
22+
var initializer = new SingleClientMetricTestInitializer(MetricTestInitializer.CreateAndAssignPlayerPrefabs);
4123

42-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
43-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
24+
yield return initializer.Initialize();
4425

45-
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
46-
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
26+
m_Server = initializer.Server;
27+
m_Client = initializer.Client;
28+
m_ClientMetrics = initializer.ClientMetrics;
29+
m_ServerMetrics = initializer.ServerMetrics;
4730
}
4831

4932
[TearDown]

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/RPC/NetworkMetricsRpcTests.cs.meta renamed to com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/NetworkMetricsRpcTests.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/NetworkObjectMetricsTests.cs

Lines changed: 23 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using MLAPI.Configuration;
55
using MLAPI.Metrics;
6+
using MLAPI.RuntimeTests.Metrics.Utility;
67
using NUnit.Framework;
78
using Unity.Multiplayer.MetricTypes;
89
using UnityEngine;
@@ -23,46 +24,29 @@ public class NetworkObjectMetricsTests
2324
[UnitySetUp]
2425
public IEnumerator SetUp()
2526
{
26-
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
27+
var initializer = new SingleClientMetricTestInitializer((server, clients) =>
2728
{
28-
Debug.LogError("Failed to create instances");
29-
Assert.Fail("Failed to create instances");
30-
}
31-
32-
var playerPrefab = new GameObject("Player");
33-
var networkObject = playerPrefab.AddComponent<NetworkObject>();
34-
35-
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);
36-
37-
m_Server.NetworkConfig.PlayerPrefab = playerPrefab;
38-
39-
var gameObject = new GameObject(m_NewNetworkObjectName);
40-
m_NewNetworkObject = gameObject.AddComponent<NetworkObject>();
41-
m_NewNetworkObject.NetworkManagerOwner = m_Server;
42-
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(m_NewNetworkObject);
43-
var networkPrefab = new NetworkPrefab {Prefab = gameObject};
44-
m_Server.NetworkConfig.NetworkPrefabs.Add(networkPrefab);
45-
46-
foreach (var client in clients)
47-
{
48-
client.NetworkConfig.PlayerPrefab = playerPrefab;
49-
client.NetworkConfig.NetworkPrefabs.Add(networkPrefab);
50-
}
51-
52-
if (!MultiInstanceHelpers.Start(true, m_Server, clients))
53-
{
54-
Debug.LogError("Failed to start instances");
55-
Assert.Fail("Failed to start instances");
56-
}
57-
58-
m_Client = clients.First();
59-
60-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
61-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
62-
63-
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
64-
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
65-
29+
MetricTestInitializer.CreateAndAssignPlayerPrefabs(server, clients);
30+
31+
var gameObject = new GameObject(m_NewNetworkObjectName);
32+
m_NewNetworkObject = gameObject.AddComponent<NetworkObject>();
33+
m_NewNetworkObject.NetworkManagerOwner = server;
34+
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(m_NewNetworkObject);
35+
var networkPrefab = new NetworkPrefab { Prefab = gameObject };
36+
server.NetworkConfig.NetworkPrefabs.Add(networkPrefab);
37+
38+
foreach (var client in clients)
39+
{
40+
client.NetworkConfig.NetworkPrefabs.Add(networkPrefab);
41+
}
42+
});
43+
44+
yield return initializer.Initialize();
45+
46+
m_Server = initializer.Server;
47+
m_Client = initializer.Client;
48+
m_ClientMetrics = initializer.ClientMetrics;
49+
m_ServerMetrics = initializer.ServerMetrics;
6650
}
6751

6852
[UnityTearDown]
Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,30 @@
11
using System.Collections;
22
using System.Linq;
33
using MLAPI.Metrics;
4+
using MLAPI.RuntimeTests.Metrics.Utility;
45
using NUnit.Framework;
56
using Unity.Multiplayer.MetricTypes;
67
using UnityEngine;
78
using UnityEngine.TestTools;
89

9-
namespace MLAPI.RuntimeTests.Metrics.NetworkVariables
10+
namespace MLAPI.RuntimeTests.Metrics
1011
{
1112
public class NetworkVariableMetricsTests
1213
{
1314
NetworkManager m_Server;
1415
NetworkMetrics m_ServerMetrics;
15-
NetworkManager m_Client;
1616
NetworkMetrics m_ClientMetrics;
1717

1818
[UnitySetUp]
1919
public IEnumerator SetUp()
2020
{
21-
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
22-
{
23-
Debug.LogError("Failed to create instances");
24-
Assert.Fail("Failed to create instances");
25-
}
21+
var initializer = new SingleClientMetricTestInitializer(MetricTestInitializer.CreateAndAssignPlayerPrefabs);
2622

27-
var playerPrefab = new GameObject("Player");
28-
var networkObject = playerPrefab.AddComponent<NetworkObject>();
29-
playerPrefab.AddComponent<NetworkVariableComponent>();
23+
yield return initializer.Initialize();
3024

31-
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);
32-
33-
m_Server.NetworkConfig.PlayerPrefab = playerPrefab;
34-
35-
foreach (var client in clients)
36-
{
37-
client.NetworkConfig.PlayerPrefab = playerPrefab;
38-
}
39-
40-
if (!MultiInstanceHelpers.Start(true, m_Server, clients))
41-
{
42-
Debug.LogError("Failed to start instances");
43-
Assert.Fail("Failed to start instances");
44-
}
45-
46-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
47-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
48-
49-
m_Client = clients.First();
50-
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
51-
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
25+
m_Server = initializer.Server;
26+
m_ServerMetrics = initializer.ServerMetrics;
27+
m_ClientMetrics = initializer.ClientMetrics;
5228
}
5329

5430
[UnityTearDown]
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/OwnershipChangeMetricsTests.cs

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Collections;
33
using System.Linq;
44
using MLAPI.Metrics;
5-
using MLAPI.RuntimeTests.Metrics.NetworkVariables;
5+
using MLAPI.RuntimeTests.Metrics.Utility;
66
using NUnit.Framework;
77
using Unity.Multiplayer.MetricTypes;
88
using UnityEngine;
@@ -20,37 +20,14 @@ public class OwnershipChangeMetricsTests
2020
[UnitySetUp]
2121
public IEnumerator SetUp()
2222
{
23-
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
24-
{
25-
Debug.LogError("Failed to create instances");
26-
Assert.Fail("Failed to create instances");
27-
}
28-
29-
var playerPrefab = new GameObject("Player");
30-
var networkObject = playerPrefab.AddComponent<NetworkObject>();
31-
playerPrefab.AddComponent<NetworkVariableComponent>();
32-
33-
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);
34-
35-
m_Server.NetworkConfig.PlayerPrefab = playerPrefab;
36-
37-
foreach (var client in clients)
38-
{
39-
client.NetworkConfig.PlayerPrefab = playerPrefab;
40-
}
41-
42-
if (!MultiInstanceHelpers.Start(true, m_Server, clients))
43-
{
44-
Debug.LogError("Failed to start instances");
45-
Assert.Fail("Failed to start instances");
46-
}
47-
48-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
49-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
50-
51-
m_Client = clients.First();
52-
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
53-
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
23+
var initializer = new SingleClientMetricTestInitializer(MetricTestInitializer.CreateAndAssignPlayerPrefabs);
24+
25+
yield return initializer.Initialize();
26+
27+
m_Server = initializer.Server;
28+
m_Client = initializer.Client;
29+
m_ServerMetrics = initializer.ServerMetrics;
30+
m_ClientMetrics = initializer.ClientMetrics;
5431
}
5532

5633
[UnityTearDown]

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/ServerLogs/ServerLogsMetricTests.cs renamed to com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/ServerLogsMetricTests.cs

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
using System.Linq;
33
using MLAPI.Logging;
44
using MLAPI.Metrics;
5+
using MLAPI.RuntimeTests.Metrics.Utility;
56
using NUnit.Framework;
67
using Unity.Multiplayer.MetricTypes;
7-
using UnityEngine;
88
using UnityEngine.TestTools;
99

10-
namespace MLAPI.RuntimeTests.Metrics.ServerLogs
10+
namespace MLAPI.RuntimeTests.Metrics
1111
{
1212
public class ServerLogsMetricTests
1313
{
@@ -16,40 +16,17 @@ public class ServerLogsMetricTests
1616
NetworkMetrics m_ClientMetrics;
1717
NetworkMetrics m_ServerMetrics;
1818

19-
2019
[UnitySetUp]
2120
public IEnumerator SetUp()
2221
{
23-
if (!MultiInstanceHelpers.Create(1, out m_Server, out var clients))
24-
{
25-
Debug.LogError("Failed to create instances");
26-
Assert.Fail("Failed to create instances");
27-
}
28-
29-
var playerPrefab = new GameObject("Player");
30-
var networkObject = playerPrefab.AddComponent<NetworkObject>();
31-
32-
MultiInstanceHelpers.MakeNetworkedObjectTestPrefab(networkObject);
33-
34-
m_Server.NetworkConfig.PlayerPrefab = playerPrefab;
35-
36-
foreach (var client in clients)
37-
{
38-
client.NetworkConfig.PlayerPrefab = playerPrefab;
39-
}
40-
41-
if (!MultiInstanceHelpers.Start(true, m_Server, clients))
42-
{
43-
Debug.LogError("Failed to start instances");
44-
Assert.Fail("Failed to start instances");
45-
}
22+
var initializer = new SingleClientMetricTestInitializer();
4623

47-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(clients));
48-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientConnectedToServer(m_Server));
24+
yield return initializer.Initialize();
4925

50-
m_Client = clients.First();
51-
m_ClientMetrics = m_Client.NetworkMetrics as NetworkMetrics;
52-
m_ServerMetrics = m_Server.NetworkMetrics as NetworkMetrics;
26+
m_Server = initializer.Server;
27+
m_Client = initializer.Client;
28+
m_ClientMetrics = initializer.ClientMetrics;
29+
m_ServerMetrics = initializer.ServerMetrics;
5330
}
5431

5532
[UnityTearDown]
@@ -80,7 +57,7 @@ public IEnumerator TrackServerLogSentMetric()
8057
[UnityTest]
8158
public IEnumerator TrackServerLogReceivedMetric()
8259
{
83-
var waitForReceivedMetric = new WaitForMetricValues<ServerLogEvent>(m_ClientMetrics.Dispatcher, MetricNames.ServerLogReceived);
60+
var waitForReceivedMetric = new WaitForMetricValues<ServerLogEvent>(m_ServerMetrics.Dispatcher, MetricNames.ServerLogReceived);
8461

8562
NetworkLog.LogWarningServer("log message");
8663

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

com.unity.multiplayer.mlapi/Tests/Runtime/Metrics/Utility.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)