public void CreateCanvasShouldNotCreateACanvasForIncorrectInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "draw a canvas"); _canvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); _canvasProcessor.CanvasRenderer = _canvasRenderer.Object; Assert.IsNull(_canvasProcessor.CreateCanvas()); }
public CanvasHandler(Canvas canvas, IInputCommandReader inputCommandReader, IInputCommandValidator inputCommandValidator, IOutputWriter outputWriter) { this.Canvas = canvas; this.InputCommandReader = inputCommandReader; this.InputCommandValidator = inputCommandValidator; this.OutputWriter = outputWriter; this.CanvasRenderer = new CanvasRenderer(canvas, OutputWriter); this.CanvasProcessor = new CanvasProcessor(inputCommandReader, CanvasRenderer, OutputWriter); }
public AppHandler(IInputCommandReader inputCommandReader, IInputCommandValidator inputCommandValidator, IOutputWriter outputWriter) { Canvases = new List <Canvas>(); this.EnvironmentWrapper = new EnvironmentWrapper(); this.OutputWriter = outputWriter; this.InputCommandReader = inputCommandReader; this.InputCommandValidator = inputCommandValidator; this.CanvasProcessor = new CanvasProcessor(inputCommandReader, OutputWriter); }
public void CreateCanvasShouldDrawCanvasForCorrectInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); _canvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); _canvasProcessor.CanvasRenderer = _canvasRenderer.Object; _canvasProcessor.CreateCanvas(); _canvasRenderer.Verify(x => x.SetTheCanvas(), Times.Once()); _canvasRenderer.Verify(x => x.Draw(), Times.Once()); }
public void CanvasShouldNotBeCreatedWithInvalidInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4 10"); var appHandler = new AppHandlerFake(); appHandler.CanvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); var canvas = appHandler.CreateNewCanvas(); Assert.IsNull(canvas); }
public void TestForCanvasInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "1"); var appHandler = new AppHandlerFake(); appHandler.OutputWriter = _outputWriter; appHandler.CanvasProcessor = new CanvasProcessor(Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"), _outputWriter); appHandler.ProcessInput('1'); }
public void TestCreateCanvas() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); var appHandler = new AppHandlerFake(); appHandler.CanvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); var canvas = appHandler.CreateNewCanvas(); Assert.AreEqual(canvas.Width, 20); Assert.AreEqual(canvas.Height, 4); }
public void CorrectInputNeedsToBeHandledConsistently() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); _canvas = new Canvas(x, y); _canvasHandler = new CanvasHandler(_canvas, _inputCommandReader, _inputCommandValidator, _outputWriter); string command = "Q"; bool processed = _canvasHandler.ProcessInput(command); Assert.IsTrue(processed); }
public void ShouldNotDrawALineForInvalidPoints() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); _canvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); _canvasProcessor.CanvasRenderer = _canvasRenderer.Object; string[] tokens = { "L", "1", "1", "4", "4" }; _canvas = Mock.Of <Canvas>(m => m.Width == x && m.Height == y); _canvasProcessor.DrawLineOnCanvas(_canvas, tokens); _canvasRenderer.Verify(v => v.DrawLine(new Point(1, 1), new Point(4, 4)), Times.Never()); _canvasRenderer.Verify(v => v.Draw(), Times.Never()); }
public void ShouldNotBucketFillForInvalidInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); _canvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); _canvasProcessor.CanvasRenderer = _canvasRenderer.Object; String[] tokens = { "B", "21", "3", "o" }; Point point = new Point(21, 3); _canvas = Mock.Of <Canvas>(m => m.Width == x && m.Height == y); _canvasProcessor.BucketFillOnCanvas(_canvas, tokens); _canvasRenderer.Verify(v => v.BucketFillArea(point, 'o'), Times.Never()); _canvasRenderer.Verify(v => v.Draw(), Times.Never()); }
public void ShouldDrawALineForValidInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); _canvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); _canvasProcessor.CanvasRenderer = _canvasRenderer.Object; string[] tokens = { "L", "1", "2", "6", "2" }; Point from = new Point(1, 2); Point to = new Point(6, 2); _canvas = Mock.Of <Canvas>(m => m.Width == x && m.Height == y); _canvasProcessor.DrawLineOnCanvas(_canvas, tokens); _canvasRenderer.Verify(x => x.DrawLine(from, to), Times.Once()); _canvasRenderer.Verify(x => x.Draw(), Times.Once()); }
public void ShouldNotDrawARectangleForOutOfBoundsInput() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"); _canvasProcessor = new CanvasProcessor(_inputCommandReader, _outputWriter); _canvasProcessor.CanvasRenderer = _canvasRenderer.Object; String[] tokens = { "R", "16", "1", "20", "5" }; Point from = new Point(16, 1); Point to = new Point(20, 3); _canvas = Mock.Of <Canvas>(m => m.Width == x && m.Height == y); _canvasProcessor.DrawARectangleOnCanvas(_canvas, tokens); _canvasRenderer.Verify(v => v.DrawRectangle(from, to), Times.Never()); _canvasRenderer.Verify(v => v.Draw(), Times.Never()); }
public void TestForCanvasExit() { _inputCommandReader = Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "3"); var appHandler = new AppHandlerFake(); appHandler.OutputWriter = _outputWriter; appHandler.CanvasProcessor = new CanvasProcessor(Mock.Of <IInputCommandReader>(m => m.ReadCommands() == "20 4"), _outputWriter); var environmentWrapper = new Mock <IEnvironmentWrapper>(); environmentWrapper.Setup(x => x.Exit(0)).Verifiable(); appHandler.EnvironmentWrapper = environmentWrapper.Object; appHandler.ProcessInput('3'); environmentWrapper.VerifyAll(); }
public CanvasProcessor(IInputCommandReader inputCommandReader, ICanvasRenderer canvasRenderer, IOutputWriter outputWriter) { InputCommandReader = inputCommandReader; OutputWriter = outputWriter; CanvasRenderer = canvasRenderer; }