test
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
using NUnit.Framework;
|
||||
using Unity.Multiplayer.Center.Analytics;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using Unity.Multiplayer.Center.Common.Analytics;
|
||||
using UnityEngine;
|
||||
using Unity.Multiplayer.Center.Window;
|
||||
using UnityEditor;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.MultiplayerCenterTests
|
||||
{
|
||||
[TestFixture]
|
||||
class TabGroupTests
|
||||
{
|
||||
TabGroup m_TabGroup;
|
||||
RecommendationTabView m_RecommendationTabView;
|
||||
GettingStartedTabView m_GettingStartedTabView;
|
||||
|
||||
private class AnalyticsMock : IMultiplayerCenterAnalytics
|
||||
{
|
||||
public void SendInstallationEvent(AnswerData data, Preset preset, Package[] packages) {}
|
||||
|
||||
public void SendRecommendationEvent(AnswerData data, Preset preset){}
|
||||
|
||||
public void SendGettingStartedInteractionEvent(string targetPackageId, string sectionId, InteractionDataType type, string displayName) {}
|
||||
}
|
||||
|
||||
private class MockTabEnabled : ITabView
|
||||
{
|
||||
public string Name => "MockTabEnabled";
|
||||
public VisualElement RootVisualElement { get; set; }
|
||||
public void SetVisible(bool visible)
|
||||
{
|
||||
RootVisualElement.style.display = visible ? DisplayStyle.Flex : DisplayStyle.None;
|
||||
}
|
||||
|
||||
public void Refresh() { }
|
||||
|
||||
public void Clear() { }
|
||||
|
||||
public IMultiplayerCenterAnalytics MultiplayerCenterAnalytics { get; set; }
|
||||
}
|
||||
|
||||
private class MockTabDisabled : ITabView
|
||||
{
|
||||
public string Name => "MockTabDisbled";
|
||||
public VisualElement RootVisualElement { get; set; }
|
||||
public void SetVisible(bool visible)
|
||||
{
|
||||
RootVisualElement.style.display = visible ? DisplayStyle.Flex : DisplayStyle.None;
|
||||
}
|
||||
|
||||
public bool IsEnabled => false;
|
||||
|
||||
public void Refresh() { }
|
||||
|
||||
public void Clear() { }
|
||||
|
||||
public IMultiplayerCenterAnalytics MultiplayerCenterAnalytics { get; set; }
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
m_RecommendationTabView = new RecommendationTabView();
|
||||
m_GettingStartedTabView = new GettingStartedTabView();
|
||||
m_TabGroup = new TabGroup(new AnalyticsMock(), new ITabView[] {m_RecommendationTabView, m_GettingStartedTabView, new MockTabEnabled(), new MockTabDisabled()});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabGroup_CreateTabs_4TabViews()
|
||||
{
|
||||
m_TabGroup.CreateTabs();
|
||||
Assert.AreEqual(4, m_TabGroup.ViewCount);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabGroup_CreateTabs_SelectsTabFromUserPreferences()
|
||||
{
|
||||
m_TabGroup.CreateTabs();
|
||||
var currentTabFromEditorPrefs = EditorPrefs.GetInt(PlayerSettings.productName + "_MultiplayerCenter_TabIndex", 0);
|
||||
Assert.AreEqual(currentTabFromEditorPrefs, m_TabGroup.CurrentTab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabGroup_SelectDeactivatedTab_SelectsFirstTab()
|
||||
{
|
||||
m_TabGroup.CreateTabs();
|
||||
m_TabGroup.SetSelected(3);
|
||||
Assert.AreEqual(0, m_TabGroup.CurrentTab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabGroup_AnalyticsIsPropagatedToAllViews()
|
||||
{
|
||||
Assert.NotNull(m_RecommendationTabView.MultiplayerCenterAnalytics);
|
||||
Assert.NotNull(m_GettingStartedTabView.MultiplayerCenterAnalytics);
|
||||
Assert.AreEqual(m_RecommendationTabView.MultiplayerCenterAnalytics, m_GettingStartedTabView.MultiplayerCenterAnalytics);
|
||||
Assert.AreEqual(m_RecommendationTabView.MultiplayerCenterAnalytics.GetType(), typeof(AnalyticsMock));
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
if (m_TabGroup != null)
|
||||
{
|
||||
m_TabGroup.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user