public void HandleInput_GameLoseTryAgain() { #region arrange var gameController = Substitute.For <IGameController>(); var gameLogicHandler = Substitute.For <ILogicHandler>(); var gameEngineInterface = Substitute.For <IGameEngineInterface>(); var dataLayer = Substitute.For <IDataLayer>(); var loseLogicProvider = new LoseLogicProvider(gameController, gameLogicHandler, gameEngineInterface, dataLayer); var uiInputStates = GetPrivateMember <Dictionary <UIInputAxis, bool> >("_uiInputStates", loseLogicProvider); uiInputStates[UIInputAxis.btnGameOverMainMenu] = false; uiInputStates[UIInputAxis.btnGameOverGetMoreLives] = false; uiInputStates[UIInputAxis.btnGameLoseMainMenu] = false; uiInputStates[UIInputAxis.btnGameLoseTryAgain] = true; #endregion #region act loseLogicProvider.HandleInput(); #endregion #region assert Assert.IsFalse(uiInputStates[UIInputAxis.btnGameLoseTryAgain]); gameController.Received(1).LoadSceneAsync(Constants.SceneNames.GameScene); #endregion }
public void HandleInput_GameOverGetMoreLives() { #region arrange var gameController = Substitute.For <IGameController>(); var gameLogicHandler = Substitute.For <ILogicHandler>(); var gameEngineInterface = Substitute.For <IGameEngineInterface>(); var dataLayer = Substitute.For <IDataLayer>(); gameEngineInterface.AppStoreService = Substitute.For <IAppStoreService>(); var loseLogicProvider = new LoseLogicProvider(gameController, gameLogicHandler, gameEngineInterface, dataLayer); var uiInputStates = GetPrivateMember <Dictionary <UIInputAxis, bool> >("_uiInputStates", loseLogicProvider); uiInputStates[UIInputAxis.btnGameOverMainMenu] = false; uiInputStates[UIInputAxis.btnGameOverGetMoreLives] = true; uiInputStates[UIInputAxis.btnGameLoseMainMenu] = false; uiInputStates[UIInputAxis.btnGameLoseTryAgain] = false; #endregion #region act loseLogicProvider.HandleInput(); #endregion #region assert Assert.IsFalse(uiInputStates[UIInputAxis.btnGameOverGetMoreLives]); gameEngineInterface.AppStoreService.Received(1).BuyProductByID(Constants.ProductNames.BuyLivesSmall); //todo: update test. this now displays the Get More Lives dialog instead of just making a purchase #endregion }