示例#1
0
        public void FindLines_EmptyFile_EmptyArr()
        {
            //arrange
            string[] lines    = { };
            string   fileText = String.Join("\n", lines);
            string   target   = "Match";

            MemoryStream stream = new MemoryStream(
                Encoding.Default.GetBytes(fileText));

            //act
            FileParser file = new FileParser();

            string[] actual = file.FindLines(
                new StreamReader(stream), target);

            //assert
            Assert.Empty(actual);
        }
示例#2
0
        public void FindLines_2Matches_SecondLineCorrect()
        {
            //arrange
            string[] lines = { "Match. Test string"
                               , "Match. Lorem lipsum string"
                               , "Without. Lorem" };
            string   fileText = String.Join("\n", lines);
            string   target   = "Match";

            MemoryStream stream = new MemoryStream(
                Encoding.Default.GetBytes(fileText));

            //act
            FileParser file = new FileParser();

            string[] actual = file.FindLines(
                new StreamReader(stream), target);

            //assert
            Assert.Equal(lines[1], actual[1]);
        }
示例#3
0
        public void FindLines_2Matches_Length2()
        {
            //arrange
            string[] lines = { "Match. Test string"
                               , "Match. Test string"
                               , "Without. Lorem" };
            string   fileText = String.Join("\n", lines);
            string   target   = "Match";
            int      expected = 2;

            MemoryStream stream = new MemoryStream(
                Encoding.Default.GetBytes(fileText));

            //act
            FileParser file = new FileParser();

            string[] actual = file.FindLines(
                new StreamReader(stream), target);

            //assert
            Assert.Equal(expected, actual.Length);
        }
示例#4
0
        public static void ExecuteProgram(string[] args)
        {
            bool isNewTry = false;
            int  result;

            do
            {
                if (isNewTry)
                {
                    result = ConsoleUI.AskMenuItem("Choose mode",
                                                   new string[] { "Search string in file",
                                                                  "replacing a line in a file" });

                    switch (result)
                    {
                    case 1:
                        args = ConsoleUI.AskInputParams(
                            InputData.MinCountParams);
                        break;

                    case 2:
                        args = ConsoleUI.AskInputParams(
                            InputData.MaxCountParams);
                        break;
                    }
                    isNewTry = false;
                }

                if (!Validator.IsValid(args))
                {
                    ConsoleUI.ShowMessage("Your data is not valid");
                    if (!ConsoleUI.AskСonfirmation("Do you want to retype them?"
                                                   , new string[] { "YES", "Y" }))
                    {
                        break;
                    }

                    result = ConsoleUI.AskMenuItem("Choose board type",
                                                   new string[] { "Search string in file",
                                                                  "replacing a line in a file" });

                    switch (result)
                    {
                    case 1:
                        args = ConsoleUI.AskInputParams(
                            InputData.MinCountParams);
                        break;

                    case 2:
                        args = ConsoleUI.AskInputParams(
                            InputData.MaxCountParams);
                        break;
                    }
                    continue;
                }

                InputData inputData = Parser.Parse(args);
                using (FileParser parser = new FileParser())
                {
                    parser.OpenFile(inputData.PathToFile);

                    switch (inputData.Mode)
                    {
                    case InputData.ProgramMode.SearchStr:
                        string[] match =
                            parser.FindLines(inputData.TargetStr);
                        ConsoleUI.PrintArray("Found strings: ", match);
                        break;

                    case InputData.ProgramMode.ReplaceStr:
                        parser.ReplaceLines(inputData.TargetStr,
                                            inputData.ReplaceStr);
                        parser.ReplaceAndDeleteTempFile();
                        break;
                    }
                }

                if (ConsoleUI.AskСonfirmation("Do you want to continue?",
                                              new string[] { "YES", "Y" }))
                {
                    isNewTry = true;
                }
                else
                {
                    break;
                }
            } while (true);
        }
示例#5
0
        public static void ShowConsoleMenu(string[] inputParams)
        {
            bool isNewTry = false;
            int  result;

            do
            {
                if (isNewTry)
                {
                    result = AskMenuItem("Choose mode",
                                         new string[] { "Search string in file",
                                                        "replacing a line in a file" });

                    switch (result)
                    {
                    case 1:
                        inputParams = AskInputParams(
                            InputData.MinCountParams);
                        break;

                    case 2:
                        inputParams = AskInputParams(
                            InputData.MaxCountParams);
                        break;
                    }
                    isNewTry = false;
                }

                if (!Validator.IsValid(inputParams))
                {
                    Console.WriteLine("Your data is not valid");
                    if (!AskBoolValue("Do you want to retype them?",
                                      new string[] { "YES", "Y" }))
                    {
                        break;
                    }

                    result = AskMenuItem("Choose board type",
                                         new string[] { "Search string in file",
                                                        "replacing a line in a file" });

                    switch (result)
                    {
                    case 1:
                        inputParams = AskInputParams(
                            InputData.MinCountParams);
                        break;

                    case 2:
                        inputParams = AskInputParams(
                            InputData.MaxCountParams);
                        break;
                    }
                    continue;
                }

                InputData inputData = Parser.Parse(inputParams);
                using (FileParser parser = new FileParser())
                {
                    parser.OpenFile(inputData.PathToFile);

                    switch (inputData.Mode)
                    {
                    case InputData.ProgramMode.SearchStr:
                        string[] match =
                            parser.FindLines(inputData.TargetStr);
                        PrintArray("Found strings: ", match);
                        break;

                    case InputData.ProgramMode.ReplaceStr:
                        parser.ReplaceLines(inputData.TargetStr,
                                            inputData.ReplaceStr);
                        break;
                    }
                }

                if (AskBoolValue("Do you want to continue?",
                                 new string[] { "YES", "Y" }))
                {
                    isNewTry = true;
                }
                else
                {
                    break;
                }
            } while (true);
        }