public void RenderCommandsWithPassedZeroCommandStringsShouldCallConsoleWriteLineNever() { string[] commands = new string[0]; var renderer = new ConsoleRenderer(); renderer.RenderCommands(commands); }
public void RenderCommandsWithPassedOneCommandStringShouldCallConsoleWriteLineOnce() { string[] commands = { "command" }; var mockConsole = new Mock<IConsoleWriter>(); var writer = mockConsole.Object; var renderer = new ConsoleRenderer(writer); renderer.RenderCommands(commands); mockConsole.Verify(c => c.WriteLine(It.IsAny<string>()), Times.Exactly(1)); }
public void RenderCommandsWithPassedFiveCommandStringsShouldCallConsoleWriteLineFiveTimes() { string[] commands = { "command1", "command2", "command3", "command4", "command5", }; var mockConsole = new Mock<IConsoleWriter>(); var writer = mockConsole.Object; var renderer = new ConsoleRenderer(writer); renderer.RenderCommands(commands); mockConsole.Verify(c => c.WriteLine(It.IsAny<string>()), Times.Exactly(5)); }
/// <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(); }