Skip to content

Commit bf517dc

Browse files
committed
test(NetworkManagerHUD): add unit test
Added unit test for the NetworkManagersHUDs lifecycle and attributes. Not sure about the OnGUI Methods. Found some workaround by using delegates but could be overengineered and not suitable.
1 parent 93e37ab commit bf517dc

4 files changed

Lines changed: 78 additions & 2 deletions

File tree

Assets/Mirror/Core/NetworkManagerHUD.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ namespace Mirror
99
[HelpURL("https://mirror-networking.gitbook.io/docs/components/network-manager-hud")]
1010
public class NetworkManagerHUD : MonoBehaviour
1111
{
12-
NetworkManager manager;
12+
// internal so we can access it during unit tests
13+
internal NetworkManager manager;
1314

1415
public int offsetX;
1516
public int offsetY;
1617

17-
void Awake()
18+
// internal so we can access it during unit tests
19+
internal void Awake()
1820
{
1921
manager = GetComponent<NetworkManager>();
2022
}

Assets/Mirror/Tests/Editor/NetworkManagerHUD.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.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using NUnit.Framework;
2+
using UnityEngine;
3+
4+
namespace Mirror.Tests
5+
{
6+
public class NetworkManagerHUDTest : MirrorEditModeTest
7+
{
8+
[SetUp]
9+
public override void SetUp()
10+
{
11+
base.SetUp();
12+
}
13+
14+
[TearDown]
15+
public override void TearDown()
16+
{
17+
base.TearDown();
18+
}
19+
20+
[Test]
21+
public void NetworkManagerHUDAttributesTest()
22+
{
23+
CreateGameObject(out GameObject manager, out NetworkManagerHUD managerHUD);
24+
25+
NetworkManagerHUD[] allHUDs = manager.GetComponents<NetworkManagerHUD>();
26+
27+
// Check if [RequireComponent(typeof(NetworkManager))] works
28+
Assert.That(manager.GetComponent<NetworkManager>(), Is.Not.Null);
29+
Assert.That(allHUDs.Length, Is.EqualTo(1));
30+
31+
manager.AddComponent<NetworkManagerHUD>();
32+
allHUDs = manager.GetComponents<NetworkManagerHUD>();
33+
34+
// Check if [DisallowMultipleComponent] works
35+
Assert.That(allHUDs.Length, Is.EqualTo(1));
36+
Assert.That(allHUDs[0], Is.SameAs(managerHUD));
37+
}
38+
39+
[Test]
40+
public void NetworkManagerHUDLifecycleTest()
41+
{
42+
CreateGameObject(out GameObject managerGO, out NetworkManager networkManager);
43+
44+
NetworkManagerHUD managerHUD = managerGO.AddComponent<NetworkManagerHUD>();
45+
46+
Assert.That(managerHUD.manager, Is.Null, "manager should be null before Awake()");
47+
48+
// Must call Unity lifecycle methods manually in edit mode tests
49+
managerHUD.Awake();
50+
51+
Assert.That(managerHUD.manager, Is.Not.Null, "manager should be set after Awake()");
52+
//Assert.That(managerHUD.manager, Is.Not.Null, "manager should be set after Awake()");
53+
}
54+
}
55+
}

Assets/Mirror/Tests/Editor/NetworkManagerHUD/NetworkManagerHUDTest.cs.meta

Lines changed: 11 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)