test
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using Unity.Multiplayer.Center.Window.UI.RecommendationView;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.MultiplayerCenterTests
|
||||
{
|
||||
internal class SectionHeaderTests
|
||||
{
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
var sectionHeader = new SectionHeader("Test");
|
||||
var dummyWindow = EditorWindow.GetWindow<DummyWindow>();
|
||||
dummyWindow.rootVisualElement.Clear();
|
||||
dummyWindow.rootVisualElement.Add(sectionHeader);
|
||||
}
|
||||
|
||||
SectionHeader GetSectionHeader()
|
||||
{
|
||||
return EditorWindow.GetWindow<DummyWindow>().rootVisualElement.Q<SectionHeader>();
|
||||
}
|
||||
|
||||
IEnumerator WaitUntilDropdownIsShown()
|
||||
{
|
||||
DropdownField dropDown = null;
|
||||
var maxWait = 100;
|
||||
|
||||
// wait for UI to be ready
|
||||
while (dropDown == null || maxWait-- > 0)
|
||||
{
|
||||
dropDown = GetSectionHeader().Q<DropdownField>();
|
||||
yield return null;
|
||||
}
|
||||
|
||||
Assert.NotNull(dropDown, "Dropdown could not be found");
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator SectionHeader_AppendsRecommendationText()
|
||||
{
|
||||
yield return WaitUntilDropdownIsShown();
|
||||
|
||||
var dropDown = GetSectionHeader().Q<DropdownField>();
|
||||
var recommendation = UtilsForRecommendationTests.GetSomeRecommendation();
|
||||
var serverChoices = recommendation.ServerArchitectureOptions;
|
||||
var serverChoice = serverChoices.First(sol => sol.RecommendationType == RecommendationType.MainArchitectureChoice);
|
||||
GetSectionHeader().UpdateData(recommendation.ServerArchitectureOptions);
|
||||
Assert.AreEqual(serverChoice.Title +" - Recommended", dropDown.value);
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator SectionHeader_IgnoresIncompatibleSolutions()
|
||||
{
|
||||
yield return WaitUntilDropdownIsShown();
|
||||
|
||||
var dropDown = GetSectionHeader().Q<DropdownField>();
|
||||
var recommendation = UtilsForRecommendationTests.GetSomeRecommendation();
|
||||
var serverChoices = recommendation.ServerArchitectureOptions;
|
||||
serverChoices.Last().RecommendationType = RecommendationType.Incompatible;
|
||||
GetSectionHeader().UpdateData(recommendation.ServerArchitectureOptions);
|
||||
Assert.AreEqual(serverChoices.Count(sol => sol.RecommendationType !=RecommendationType.Incompatible), dropDown.choices.Count);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
var dummyWindow = EditorWindow.GetWindow<DummyWindow>();
|
||||
dummyWindow.rootVisualElement.Clear();
|
||||
dummyWindow.Close();
|
||||
}
|
||||
|
||||
class DummyWindow : EditorWindow { }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user