public void TestInitialize()
        {
            _logicHandler        = Substitute.For <ILogicHandler>();
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _dataLayer           = Substitute.For <IDataLayer>();

            _gameEngineInterface.AppVersion.Returns("1.0.0.0");

            _btnPrivacyPolicy = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnPrivacyPolicy").Returns(_btnPrivacyPolicy);

            _btnHowToPlay = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnHowToPlay").Returns(_btnHowToPlay);

            _btnShare = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("_btnShare").Returns(_btnShare); //todo: howcome the UT works with a misnamed button?

            var txtVersionNumberGameObject = Substitute.For <IGameObject>();

            _txtVersionNumber = Substitute.For <IText>();
            txtVersionNumberGameObject.GetComponent <IText>().Returns(_txtVersionNumber);
            _gameEngineInterface.FindGameObject("txtVersionNumber").Returns(txtVersionNumberGameObject);

            _pnlMainMenu = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("pnlMainMenu").Returns(_pnlMainMenu);

            _inMenuLogicProvider = new InMenuLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);
        }
        public void OnDeActivate()
        {
            #region arrange
            var gameLogicHandler = Substitute.For <ILogicHandler>();

            var gameEngineInterface = Substitute.For <IGameEngineInterface>();

            var dataLayer = Substitute.For <IDataLayer>();

            var inMenuLogicProvider = new InMenuLogicProvider(gameLogicHandler, gameEngineInterface, dataLayer);
            var pnlMainMenu         = Substitute.For <IGameObject>();
            SetPrivateMember("_pnlMainMenu", inMenuLogicProvider, pnlMainMenu);
            #endregion

            #region act
            inMenuLogicProvider.OnDeActivate();
            #endregion

            #region assert
            pnlMainMenu.Received().SetActive(false);
            #endregion
        }