public void OnDeActivate_Null()
        {
            #region arrange
            var gameLogicHandler = Substitute.For <ILogicHandler>();

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

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

            var pauseLogicProvider = new PauseLogicProvider(gameLogicHandler, gameEngineInterface, dataLayer);

            SetPrivateMember("_pnlPauseMenu", pauseLogicProvider, (IGameObject)null);
            #endregion

            #region act
            pauseLogicProvider.OnDeActivate();
            #endregion

            #region assert
            Assert.IsTrue(true); //if we made it this far without throwing an exception, then we have passed the test.
            #endregion
        }
        public void OnDeActivate_NotNull()
        {
            #region arrange
            var gameLogicHandler    = Substitute.For <ILogicHandler>();
            var gameEngineInterface = Substitute.For <IGameEngineInterface>();
            var dataLayer           = Substitute.For <IDataLayer>();

            var pauseLogicProvider = new PauseLogicProvider(gameLogicHandler, gameEngineInterface, dataLayer);

            var pnlPauseMenu = Substitute.For <IGameObject>();
            SetPrivateMember("_pnlPauseMenu", pauseLogicProvider, pnlPauseMenu);
            SetPrivateMember("_timeScaleBackup", pauseLogicProvider, 1);
            #endregion

            #region act
            pauseLogicProvider.OnDeActivate();
            #endregion

            #region assert
            pnlPauseMenu.Received(1).SetActive(false);
            Assert.AreEqual(1, gameEngineInterface.TimeScale);
            #endregion
        }