//===============================================================================================================
        //Host
        void SetUp_HostInput(out GameObject hostUI, out GameObject loadingUI,
                             out InputField portInput, out Image portInputImage,
                             out SettingsTestDummy settingsAccepter, out SettingsTestDummy hostAccepter,
                             out Button hostButton)
        {
            hostUI    = MonoBehaviour.Instantiate(new GameObject());
            loadingUI = MonoBehaviour.Instantiate(new GameObject());

            hostUI.SetActive(true);
            loadingUI.SetActive(false);

            InputField nameInput = MonoBehaviour.Instantiate(new GameObject()).AddComponent <InputField>();

            nameInput.text = "TestUser";

            GameObject portInputObject = MonoBehaviour.Instantiate(new GameObject());

            portInput      = portInputObject.AddComponent <InputField>();
            portInputImage = portInputObject.AddComponent <Image>();

            hostButton = MonoBehaviour.Instantiate(new GameObject()).AddComponent <Button>();

            settingsAccepter = new SettingsTestDummy();
            hostAccepter     = new SettingsTestDummy();

            var LogonUIManager = MonoBehaviour.Instantiate(new GameObject()).AddComponent <LogonUIManager>();

            LogonUIManager.NameInput             = nameInput;
            LogonUIManager.HostModeUI            = hostUI;
            LogonUIManager.LoadingUI             = loadingUI;
            LogonUIManager.HostPortInput         = portInput;
            LogonUIManager.HostButton            = hostButton;
            LogonUIManager.Request_SaveSettings += settingsAccepter.AcceptContainer;
            LogonUIManager.Request_Host         += hostAccepter.AcceptContainer;
        }
        public IEnumerator Start_SettingsLoad_SettingsAppearInFields()
        {
            var nameInput        = MonoBehaviour.Instantiate(new GameObject()).AddComponent <InputField>();
            var joinAddressInput = MonoBehaviour.Instantiate(new GameObject()).AddComponent <InputField>();
            var joinPortInput    = MonoBehaviour.Instantiate(new GameObject()).AddComponent <InputField>();
            var hostPortInput    = MonoBehaviour.Instantiate(new GameObject()).AddComponent <InputField>();

            var SettingsTestDummy = new SettingsTestDummy();

            var LogonUIManager = MonoBehaviour.Instantiate(new GameObject()).AddComponent <LogonUIManager>();

            LogonUIManager.NameInput        = nameInput;
            LogonUIManager.JoinAddressInput = joinAddressInput;
            LogonUIManager.JoinPortInput    = joinPortInput;
            LogonUIManager.HostPortInput    = hostPortInput;

            LogonUIManager.Request_LoadSettings += SettingsTestDummy.GiveContainer;

            yield return(null);//skip frame

            Assert.IsTrue(SettingsTestDummy.ContainerRequested);
            Assert.AreEqual(SettingsTestDummy.TestName, nameInput.text);
            Assert.AreEqual(SettingsTestDummy.TestAddress, joinAddressInput.text);
            var expectedPort = SettingsTestDummy.TestPort.ToString();

            Assert.AreEqual(expectedPort, joinPortInput.text);
            Assert.AreEqual(expectedPort, hostPortInput.text);
        }
        //===============================================================================================================
        //Join
        void SetUp_JoinInput(out GameObject joinUI, out GameObject loadingUI,
                             out InputField addressInput, out Image addressInputImage,
                             out InputField portInput, out Image portInputImage,
                             out SettingsTestDummy settingsAccepter, out SettingsTestDummy joinAccepter,
                             out Button joinButton)
        {
            joinUI    = MonoBehaviour.Instantiate(new GameObject());
            loadingUI = MonoBehaviour.Instantiate(new GameObject());

            joinUI.SetActive(true);
            loadingUI.SetActive(false);

            InputField nameInput = MonoBehaviour.Instantiate(new GameObject()).AddComponent <InputField>();

            nameInput.text = "TestUser";

            GameObject addressInputObject = MonoBehaviour.Instantiate(new GameObject());

            addressInput      = addressInputObject.AddComponent <InputField>();
            addressInputImage = addressInputObject.AddComponent <Image>();

            GameObject portInputObject = MonoBehaviour.Instantiate(new GameObject());

            portInput      = portInputObject.AddComponent <InputField>();
            portInputImage = portInputObject.AddComponent <Image>();

            joinButton = MonoBehaviour.Instantiate(new GameObject()).AddComponent <Button>();

            settingsAccepter = new SettingsTestDummy();
            joinAccepter     = new SettingsTestDummy();

            var LogonUIManager = MonoBehaviour.Instantiate(new GameObject()).AddComponent <LogonUIManager>();

            LogonUIManager.NameInput             = nameInput;
            LogonUIManager.JoinModeUI            = joinUI;
            LogonUIManager.LoadingUI             = loadingUI;
            LogonUIManager.JoinAddressInput      = addressInput;
            LogonUIManager.JoinPortInput         = portInput;
            LogonUIManager.JoinButton            = joinButton;
            LogonUIManager.Request_SaveSettings += settingsAccepter.AcceptContainer;
            LogonUIManager.Request_Join         += joinAccepter.AcceptContainer;
        }