113 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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,
 | |
|                 string hostingModelName, bool hostingModelRecommended, string netcodeSolutionName, bool netcodeSolutionRecommended) {}
 | |
| 
 | |
|             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();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |