Ejemplo n.º 1
0
        public void ValidateInputForCorrectNess()
        {
            string[] command = new[] { "L", "1", "2", "6", "2" };

            bool processed = _inputCommandValidator.ValidateInput(command, 5);

            Assert.IsTrue(processed);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Processes the input.
        /// </summary>
        /// <param name="input">The input.</param>
        /// <returns></returns>
        /// <exception cref="InvalidInputDataException">
        /// </exception>
        public bool ProcessInput(string input)
        {
            string[] commandArgs = Regex.Split(input, @"\s+").Where(s => s != string.Empty).ToArray();

            bool isInputValid = false;
            bool result       = false;

            try
            {
                switch (commandArgs[0])
                {
                case "L":
                case "l":
                    isInputValid = InputCommandValidator.ValidateInput(commandArgs, 5);

                    if (!isInputValid)
                    {
                        throw new InvalidInputDataException();
                    }
                    this.CanvasProcessor.DrawLineOnCanvas(Canvas, commandArgs);
                    break;

                case "R":
                case "r":
                    isInputValid = InputCommandValidator.ValidateInput(commandArgs, 5);

                    if (!isInputValid)
                    {
                        throw new InvalidInputDataException();
                    }

                    this.CanvasProcessor.DrawARectangleOnCanvas(Canvas, commandArgs);
                    break;

                case "B":
                case "b":
                    isInputValid = InputCommandValidator.ValidateInput(commandArgs, 4);

                    if (!isInputValid)
                    {
                        throw new InvalidInputDataException();
                    }

                    this.CanvasProcessor.BucketFillOnCanvas(Canvas, commandArgs);
                    break;

                case "Q":
                case "q":
                    OutputWriter.SendToOutput("Returning to Main Menu", true);
                    result = true;
                    break;

                default:
                    OutputWriter.SendToOutput("Invalid Option, please choose from below", true);
                    break;
                }
            }
            catch (InvalidInputDataException exception)
            {
                OutputWriter.SendToOutput(exception.Message, true);
            }
            return(result);
        }