public void TestValidCommandsMapping()
 {
     Assert.AreEqual(InputPatternsAndCommandHandlersMap.GetCommandHandler(AppConstants.CREATE_CANVAS_COMMAND_PATTERN).GetType(), typeof(CreateCanvasCommandHandler));
     Assert.AreEqual(InputPatternsAndCommandHandlersMap.GetCommandHandler(AppConstants.DRAW_LINE_COMMAND_PATTERN).GetType(), typeof(DrawLineCommandHandler));
     Assert.AreEqual(InputPatternsAndCommandHandlersMap.GetCommandHandler(AppConstants.DRAW_RECTANGLE_COMMAND_PATTERN).GetType(), typeof(DrawRectangleCommandHandler));
     Assert.AreEqual(InputPatternsAndCommandHandlersMap.GetCommandHandler(AppConstants.FILL_CONNECTED_AREA_COMMAND_PATTERN).GetType(), typeof(FillConnectedAreaCommandHandler));
     Assert.AreEqual(InputPatternsAndCommandHandlersMap.GetCommandHandler(AppConstants.HELP_COMMAND_PATTERN).GetType(), typeof(HelpCommandHandler));
     Assert.AreEqual(InputPatternsAndCommandHandlersMap.GetCommandHandler(AppConstants.QUIT_COMMAND_PATTERN).GetType(), typeof(QuitCommandHandler));
 }
        public void ParseAndProcessData(string line)
        {
            line = Regex.Replace(line, @"\s+", " ");
            //TODO:Can add all patterns of statement in a list and
            //loop through to find match instead of following

            foreach (var pattern in InputPatternsAndCommandHandlersMap.GetinputPatterns())
            {
                if (Regex.IsMatch(line, pattern, RegexOptions.IgnoreCase))
                {
                    var handler = InputPatternsAndCommandHandlersMap.GetCommandHandler(pattern);
                    handler.ProcessCommand(line);
                    return;
                }
            }
            throw new InvalidCommandException();
        }
 public void TestInValidCommandsMapping()
 {
     Assert.Throws <InvalidCommandException>(() => InputPatternsAndCommandHandlersMap.GetCommandHandler("invalid command"));
 }
 public void InputPatternsAndCommandHandlersMapTestSetup()
 {
     commandPatterns = InputPatternsAndCommandHandlersMap.GetinputPatterns();
 }