public void ConstructorTest() { #region arrange var gameLogicHandler = Substitute.For <ILogicHandler>(); var gameEngineInterface = Substitute.For <IGameEngineInterface>(); gameEngineInterface.Screen.Width.Returns(SCREEN_WIDTH); var dataLayer = Substitute.For <IDataLayer>(); var asteroidPlacementLogicImplementer = Substitute.For <IAsteroidPlacementLogicImplementer>(); #endregion #region act var gameLogicProvider = new GameLogicProvider(gameLogicHandler, gameEngineInterface, dataLayer, asteroidPlacementLogicImplementer); #endregion #region assert var halfScreenWidth = GetPrivateMember <int>("_halfScreenWidth", gameLogicProvider); Assert.AreEqual(50, halfScreenWidth); var inputStates = GetPrivateMember <Dictionary <InputAxis, float> >("_inputStates", gameLogicProvider); Assert.AreEqual(0, inputStates[InputAxis.Horizontal]); Assert.AreEqual(0, inputStates[InputAxis.Cancel]); Assert.AreEqual(1, gameEngineInterface.TimeScale); #endregion }
public void TestInitialize() { _gameController = Substitute.For <IGameController>(); _logicHandler = Substitute.For <ILogicHandler>(); _gameEngineInterface = Substitute.For <IGameEngineInterface>(); _dataLayer = Substitute.For <IDataLayer>(); _audioSourceShip = Substitute.For <IAudioSource>(); _playerShip = Substitute.For <IGameObject>(); _playerShip.Transform = Substitute.For <ITransform>(); _camera = Substitute.For <IGameObject>(); _gameEngineInterface.FindGameObject("MainCamera").Returns(_camera); _camera.Transform.Position.Returns(new Vector3(0, 0, 0)); _sourceAsteroid = Substitute.For <IGameObject>(); _gameEngineInterface.FindGameObject("sourceAsteroid").Returns(_sourceAsteroid); _sourceAsteroid.Transform.Position.Returns(new Vector3(0, 0, 0)); _playerShipScript = Substitute.For <IPlayerShipScript>(); _playerShipScript.Health.Returns(100); _playerShip.GetSize().Returns(new Vector3(10, 10, 10)); _gameEngineInterface.Screen.Width.Returns(SCREEN_WIDTH); _logicHandler.GameController = _gameController; _asteroidPlacementLogicImplementer = Substitute.For <IAsteroidPlacementLogicImplementer>(); _gameLogicProvider = new GameLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer, _asteroidPlacementLogicImplementer); //todo 2nd game: couldn't get Substitute.ForPartsOf to work, so I had to mock all the stuff needed for the call to InitStage() _gameEngineInterface.Time = Substitute.For <ITime>(); _gameEngineInterface.Time.DeltaTime.Returns(1); }
private char[,] ShootAt1x1(char[,] manualFieldBefor) { var gameFieldXLen = manualFieldBefor.GetLength(0); var gameFieldYLen = manualFieldBefor.GetLength(1); GameField gameField = new GameField(gameFieldXLen, gameFieldYLen); // fill the field with the manual chars for (int i = 0; i < gameFieldXLen; i++) { for (int j = 0; j < gameFieldYLen; j++) { gameField[i, j] = manualFieldBefor[i, j]; } } // Create game with custom field Game game = new Game(gameField); var logicProvider = new GameLogicProvider(game); // shoot 1x1 Coordinates positionToShoot = new Coordinates(1, 1); logicProvider.ShootBalloonAtPosition(positionToShoot); return gameField.GetField(); }