public void ManagerUndoMethodShouldCallGameFieldRestoreFieldMethod() { var mockField = new Mock<IGameField>(); var manager = new FieldMemoryManager(); var field = mockField.Object; manager.Undo(field); mockField.Verify(f => f.RestoreField(It.IsAny<FieldMemory>()), Times.AtLeastOnce()); }
public void ManagerSaveMethodShouldCallGameFieldSaveFieldMethod() { var matrix = new Balloon[2, 2]; var mockField = new Mock<IGameField>(); mockField.Setup(f => f.SaveField()).Returns(new FieldMemory(matrix)); var manager = new FieldMemoryManager(); var field = mockField.Object; manager.Save(field); }
/// <summary> /// This method instantiate all dependencies for the game. /// </summary> public static void StartGame() { // Console context dependancies IConsoleWriter consoleWriter = new ConsoleWriter(); IConsoleReader consoleReader = new ConsoleReader(); // Instantiate game dependancies IRenderer renderer = new ConsoleRenderer(consoleWriter); IInputHandler inputHandler = new ConsoleInputHandler(consoleWriter, consoleReader); IFieldFactory fieldFactory = new GameFieldFactory(); IFieldMemoryManager fieldMemoryManager = new FieldMemoryManager(); IBalloonsFactory balloonsFactory = new BalloonsFactory(); IFiller matrixFiller = new Filler(balloonsFactory); ICommandManager commandManager = new CommandManager(); // Printing initial screen goes here. renderer.RenderGameMessage(GameMessages.InitialGameMessage); renderer.RenderCommands(GameMessages.CommandsMessages); // Getting mode and difficulty goes here. GameMode gameMode = inputHandler.GetGameMode(); GameDifficulty gameDifficulty = inputHandler.GetGameDifficulty(); var reorderStrategy = GetReorderStrategy(gameMode); // Fluent interface implementation IBalloonsEngine engine = new BalloonsGameEngine() .Renderer(renderer) .Input(inputHandler) .FieldFactory(fieldFactory) .FieldMemoryManager(fieldMemoryManager) .BalloonsFactory(balloonsFactory) .CommandManager(commandManager) .ReorderBalloonsStrategy(reorderStrategy) .GameFieldFiller(matrixFiller); engine.InitializeGame(gameDifficulty); engine.StartGame(); }
public void PassedNullGameFieldToUndoMethodShouldThrowExceptio() { var manager = new FieldMemoryManager(); manager.Undo(null); }