コード例 #1
0
        public void CanSaveAndLoadSessionStateKeys()
        {
            m_Manager.Initialize(m_Settings);
            m_Manager.GlobalProfileVariables.Clear();
            var customIps = new Dictionary <string, string>()
            {
                { m_Manager.GetPrivateIpAddressKey(0), "111.1.1.1" },
                { m_Manager.GetPrivateIpAddressKey(1), "222.2.2.2" },
                { m_Manager.GetPrivateIpAddressKey(2), "333.3.3.3" },
            };

            foreach (KeyValuePair <string, string> pair in customIps)
            {
                m_Manager.GlobalProfileVariables.Add(pair.Key, pair.Value);
            }

            m_Manager.SaveSessionStateKeys();
            m_Manager.GlobalProfileVariables.Clear();

            m_Manager.LoadSessionStateKeys();
            Assert.AreEqual(customIps.Count, m_Manager.GlobalProfileVariables.Count);
            foreach (KeyValuePair <string, string> pair in customIps)
            {
                Assert.IsTrue(m_Manager.GlobalProfileVariables.ContainsKey(pair.Key));
                Assert.AreEqual(pair.Value, m_Manager.GlobalProfileVariables[pair.Key]);
            }

            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #2
0
        public void BatchModeShould_StartAllServices()
        {
            m_Manager.Initialize(m_Settings);
            var svc = m_Manager.AddHostingService(typeof(TestHostingService), "test");

            Assert.IsFalse(svc.IsHostingServiceRunning);
            HostingServicesManager.BatchMode(m_Settings);
            Assert.IsTrue(svc.IsHostingServiceRunning);
        }
コード例 #3
0
 public void OnEnableShould_UnregisterProfileStringEvalFuncForManager()
 {
     m_Manager.Initialize(m_Settings);
     m_Manager.OnEnable();
     Assert.IsTrue(ProfileStringEvalDelegateIsRegistered(m_Settings, m_Manager));
     m_Manager.OnDisable();
     Assert.IsFalse(ProfileStringEvalDelegateIsRegistered(m_Settings, m_Manager));
     HostingServicesManager.EraseSessionStateKeys();
 }
コード例 #4
0
        public void Setup()
        {
            m_Manager  = new HostingServicesManager();
            m_Settings = AddressableAssetSettings.Create(k_TestConfigFolder, k_TestConfigName, false, false);
            m_Settings.HostingServicesManager = m_Manager;
            var group = m_Settings.CreateGroup("testGroup", false, false, false, null);

            group.AddSchema <BundledAssetGroupSchema>();
            m_Settings.groups.Add(group);
        }
コード例 #5
0
        static void Deserialize(HostingServicesManager m, SerializedData data)
        {
            FieldInfo infosField = typeof(HostingServicesManager).GetField("m_HostingServiceInfos", BindingFlags.NonPublic | BindingFlags.Instance);

            Assert.NotNull(infosField);
            FieldInfo typeRefField = typeof(HostingServicesManager).GetField("m_RegisteredServiceTypeRefs", BindingFlags.NonPublic | BindingFlags.Instance);

            Assert.NotNull(typeRefField);

            infosField.SetValue(m, data.Infos);
            typeRefField.SetValue(m, data.TypeRefs);
        }
コード例 #6
0
        public void OnDisableShould_DeRegisterForSettingsModificationEvents()
        {
            var len = m_Settings.OnModification.GetInvocationList().Length;

            m_Manager.Initialize(m_Settings);
            m_Manager.OnEnable();
            m_Manager.OnEnable();
            m_Manager.OnEnable();
            Assert.Greater(m_Settings.OnModification.GetInvocationList().Length, len);
            m_Manager.OnDisable();
            Assert.AreEqual(len, m_Settings.OnModification.GetInvocationList().Length);
            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #7
0
        public void OnDisableShould_DeRegisterProfileStringEvalFuncsForServices()
        {
            m_Manager.Initialize(m_Settings);
            var svc = m_Manager.AddHostingService(typeof(TestHostingService), "test") as TestHostingService;

            Assert.IsNotNull(svc);
            m_Manager.Initialize(m_Settings);
            m_Manager.OnEnable();
            Assert.IsTrue(ProfileStringEvalDelegateIsRegistered(m_Settings, svc));
            m_Manager.OnDisable();
            Assert.IsFalse(ProfileStringEvalDelegateIsRegistered(m_Settings, svc));
            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #8
0
        IHostingService GetManagedService(out AddressableAssetSettings settings)
        {
            var m = new HostingServicesManager();

            settings = AddressableAssetSettings.Create(k_TestConfigFolder, k_TestConfigName, false, false);
            settings.HostingServicesManager = m;
            var group = settings.CreateGroup("testGroup", false, false, false, null);

            group.AddSchema <BundledAssetGroupSchema>();
            settings.groups.Add(group);
            m.Initialize(settings);
            return(m.AddHostingService(m_Service.GetType(), "test"));
        }
コード例 #9
0
        public void OnDisableShould_RegisterNullLoggerForServices()
        {
            m_Manager.Initialize(m_Settings);
            var svc = m_Manager.AddHostingService(typeof(TestHostingService), "test") as TestHostingService;

            Assert.IsNotNull(svc);
            m_Manager.Initialize(m_Settings);
            m_Manager.OnEnable();
            Assert.IsNotNull(svc.Logger);
            m_Manager.OnDisable();
            Assert.IsNull(svc.Logger);
            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #10
0
        static SerializedData Serialize(HostingServicesManager m)
        {
            FieldInfo infosField = typeof(HostingServicesManager).GetField("m_HostingServiceInfos", BindingFlags.NonPublic | BindingFlags.Instance);

            Assert.NotNull(infosField);
            FieldInfo typeRefField = typeof(HostingServicesManager).GetField("m_RegisteredServiceTypeRefs", BindingFlags.NonPublic | BindingFlags.Instance);

            Assert.NotNull(typeRefField);

            return(new SerializedData()
            {
                Infos = (List <HostingServicesManager.HostingServiceInfo>)infosField.GetValue(m),
                TypeRefs = (List <string>)typeRefField.GetValue(m)
            });
        }
コード例 #11
0
        public void CanEraseSessionStateKeys()
        {
            m_Manager.Initialize(m_Settings);
            m_Manager.GlobalProfileVariables.Clear();
            m_Manager.GlobalProfileVariables.Add(m_Manager.GetPrivateIpAddressKey(0), "111.1.1.1");
            m_Manager.GlobalProfileVariables.Add(m_Manager.GetPrivateIpAddressKey(1), "222.2.2.2");
            m_Manager.GlobalProfileVariables.Add(m_Manager.GetPrivateIpAddressKey(2), "333.3.3.3");

            m_Manager.SaveSessionStateKeys();

            HostingServicesManager.EraseSessionStateKeys();
            Assert.AreEqual(string.Empty, SessionState.GetString(HostingServicesManager.GetSessionStateKey(0), string.Empty));
            Assert.AreEqual(string.Empty, SessionState.GetString(HostingServicesManager.GetSessionStateKey(1), string.Empty));
            Assert.AreEqual(string.Empty, SessionState.GetString(HostingServicesManager.GetSessionStateKey(2), string.Empty));
        }
コード例 #12
0
        public void OnEnableShould_LoadSessionStateKeys_IfExitingEditMode_AndConditionsAreMet(bool serviceEnabled, bool usingPackedPlayMode)
        {
            string ipAddressKey = m_Manager.GetPrivateIpAddressKey();
            string ipAddressVal = "123.1.2.3";

            m_Manager.Initialize(m_Settings);
            bool exitingExitMode = m_Manager.exitingEditMode;

            m_Manager.exitingEditMode = true;

            var svc = m_Manager.AddHostingService(typeof(TestHostingService), "test");

            if (serviceEnabled)
            {
                svc.StartHostingService();
            }

            int activePlayerDataBuilderIndex = m_Settings.ActivePlayModeDataBuilderIndex;

            if (usingPackedPlayMode)
            {
                m_Settings.DataBuilders.Add(ScriptableObject.CreateInstance <BuildScriptPackedPlayMode>());
                m_Settings.ActivePlayModeDataBuilderIndex = m_Settings.DataBuilders.Count - 1;
            }

            m_Manager.GlobalProfileVariables.Clear();
            m_Manager.GlobalProfileVariables.Add(ipAddressKey, ipAddressVal);
            m_Manager.SaveSessionStateKeys();
            m_Manager.GlobalProfileVariables.Clear();

            m_Manager.OnEnable();
            Assert.AreEqual(1, m_Manager.GlobalProfileVariables.Count);
            Assert.IsTrue(m_Manager.GlobalProfileVariables.ContainsKey(ipAddressKey));
            Assert.AreEqual(ipAddressVal, m_Manager.GlobalProfileVariables[ipAddressKey]);

            if (serviceEnabled)
            {
                svc.StopHostingService();
            }

            m_Settings.ActivePlayModeDataBuilderIndex = activePlayerDataBuilderIndex;
            if (usingPackedPlayMode)
            {
                m_Settings.DataBuilders.RemoveAt(m_Settings.DataBuilders.Count - 1);
            }
            m_Manager.exitingEditMode = exitingExitMode;
            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #13
0
        public void OnDisableShould_StopAllServices()
        {
            m_Manager.Initialize(m_Settings);
            for (int i = 0; i < 3; i++)
            {
                var svc = m_Manager.AddHostingService(typeof(HttpHostingService), $"test_{i}") as HttpHostingService;
                Assert.IsNotNull(svc);
                svc.StartHostingService();
                Assert.IsTrue(svc.IsHostingServiceRunning);
            }
            m_Manager.OnDisable();

            foreach (var svc in m_Manager.HostingServices)
            {
                Assert.IsFalse(svc.IsHostingServiceRunning);
            }
            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #14
0
        public HostingServicesListTreeView(TreeViewState treeViewState, HostingServicesManager manager, HostingServicesWindow window, MultiColumnHeader header)
            : base(treeViewState, header)
        {
            m_Manager = manager;
            m_Window  = window;
            m_Names   = new List <string>();
            if (m_Window.ServiceIndex == -1)
            {
                m_Window.ServiceIndex = 0;
            }
            Reload();

            if (m_Window.ServiceIndex >= 0)
            {
                SetSelection(new List <int> {
                    m_Window.ServiceIndex
                });
            }
        }
コード例 #15
0
        public void OnDisableShould_SaveSessionStateKeys()
        {
            string ipAddressKey = m_Manager.GetPrivateIpAddressKey(0);
            string ipAddressVal = "123.1.2.3";

            m_Manager.Initialize(m_Settings);
            m_Manager.GlobalProfileVariables.Clear();
            m_Manager.GlobalProfileVariables.Add(ipAddressKey, ipAddressVal);

            m_Manager.OnDisable();
            m_Manager.GlobalProfileVariables.Clear();
            m_Manager.LoadSessionStateKeys();

            Assert.AreEqual(1, m_Manager.GlobalProfileVariables.Count);
            Assert.IsTrue(m_Manager.GlobalProfileVariables.ContainsKey(ipAddressKey));
            Assert.AreEqual(ipAddressVal, m_Manager.GlobalProfileVariables[ipAddressKey]);

            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #16
0
        public void LoadSessionStateKeys_ExcludesMissingKeys()
        {
            string ipAddressKey = m_Manager.GetPrivateIpAddressKey(1);

            m_Manager.Initialize(m_Settings);
            m_Manager.GlobalProfileVariables.Clear();
            m_Manager.GlobalProfileVariables.Add(m_Manager.GetPrivateIpAddressKey(0), "111.1.1.1");
            m_Manager.GlobalProfileVariables.Add(ipAddressKey, "222.2.2.2");
            m_Manager.GlobalProfileVariables.Add(m_Manager.GetPrivateIpAddressKey(2), "333.3.3.3");

            m_Manager.SaveSessionStateKeys();
            m_Manager.GlobalProfileVariables.Clear();

            SessionState.EraseString(HostingServicesManager.GetSessionStateKey(1));
            m_Manager.LoadSessionStateKeys();
            Assert.AreEqual(2, m_Manager.GlobalProfileVariables.Count);
            Assert.IsFalse(m_Manager.GlobalProfileVariables.ContainsKey(ipAddressKey));

            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #17
0
        public void OnDomainReload_HttpServicePortShouldntChange()
        {
            m_Manager.Initialize(m_Settings);
            var svc = m_Manager.AddHostingService(typeof(HttpHostingService), "test") as HttpHostingService;

            Assert.IsNotNull(svc);
            svc.WasEnabled = true;
            m_Manager.OnEnable();
            var expectedPort = svc.HostingServicePort;

            Assert.IsTrue(svc.IsHostingServiceRunning);

            for (int i = 1; i <= 5; i++)
            {
                m_Manager.OnDisable();
                Assert.IsFalse(svc.IsHostingServiceRunning, $"Service '{svc.DescriptiveName}' was still running after manager.OnDisable() (iteration {i}");
                m_Manager.OnEnable();
                Assert.IsTrue(svc.IsHostingServiceRunning, $"Service '{svc.DescriptiveName}' not running after manager.OnEnable() (iteration {i}");
            }
            Assert.AreEqual(expectedPort, svc.HostingServicePort);
            HostingServicesManager.EraseSessionStateKeys();
        }
コード例 #18
0
        public void OnAfterDeserializeShould_RestoreHostingServicesInstancesIfStillAlive()
        {
            m_Manager.Initialize(m_Settings);
            var svc = m_Manager.AddHostingService(typeof(TestHostingService), "test");

            Assert.IsTrue(m_Manager.HostingServices.Contains(svc));

            var generator = new ObjectIDGenerator();
            var id        = generator.GetId(svc, out bool firstTime);

            Assert.IsTrue(firstTime);

            m_Manager.OnBeforeSerialize();
            var serializedData = Serialize(m_Manager);

            svc       = null;
            m_Manager = null;
            m_Settings.HostingServicesManager = null;

            var newManager = new HostingServicesManager();

            m_Settings.HostingServicesManager = newManager;
            newManager.Initialize(m_Settings);

            Deserialize(newManager, serializedData);
            newManager.OnAfterDeserialize();

            Assert.IsNotEmpty(newManager.HostingServices);
            svc = newManager.HostingServices.FirstOrDefault();
            Assert.NotNull(svc);
            var id2 = generator.GetId(svc, out firstTime);

            Assert.IsFalse(firstTime);
            Assert.AreEqual(id, id2);

            m_Manager = newManager;
        }
コード例 #19
0
        static bool ProfileStringEvalDelegateIsRegistered(AddressableAssetSettings s, HostingServicesManager m)
        {
            var del  = new AddressableAssetProfileSettings.ProfileStringEvaluationDelegate(m.EvaluateGlobalProfileVariableKey);
            var list = s.profileSettings.onProfileStringEvaluation.GetInvocationList();

            return(list.Contains(del));
        }
コード例 #20
0
 public void BatchModeShould_InitializeManagerWithDefaultSettings()
 {
     Assert.IsFalse(m_Manager.IsInitialized);
     HostingServicesManager.BatchMode(m_Settings);
     Assert.IsTrue(m_Manager.IsInitialized);
 }
コード例 #21
0
 public void OneTimeSetUp()
 {
     // calling EditorSceneManager.NewScene from other tests will call HostingServicesManager.OnDisable and save the keys
     HostingServicesManager.EraseSessionStateKeys();
 }