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());
        }
Пример #2
0
 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);
 }
Пример #3
0
 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());
        }
Пример #5
0
        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);
        }
Пример #6
0
        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');
        }
Пример #7
0
        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);
        }
Пример #8
0
        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());
        }
Пример #10
0
        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());
        }
Пример #11
0
        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());
        }
Пример #12
0
        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());
        }
Пример #13
0
        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();
        }
Пример #14
0
 public CanvasProcessor(IInputCommandReader inputCommandReader, ICanvasRenderer canvasRenderer, IOutputWriter outputWriter)
 {
     InputCommandReader = inputCommandReader;
     OutputWriter       = outputWriter;
     CanvasRenderer     = canvasRenderer;
 }