Пример #1
0
        public void MainTest()
        {
            SimpleByWordParser parser  = new SimpleByWordParser();
            Indexer            indexer = new Indexer(parser);

            var testFilesDirectory = @"D:\MyProjects\Tests";
            var testFileName       = @"text.txt";

            CreateTestFile(testFilesDirectory, testFileName);
            indexer.AddFile(testFilesDirectory + "\\" + testFileName);


            for (int i = 0; i < 2; i++)
            {
                var newDirectory = testFilesDirectory + "\\" + i + "Test";
                Directory.CreateDirectory(newDirectory);
                for (int j = 0; j < 5; j++)
                {
                    CreateTestFile(newDirectory, j + testFileName);
                }

                indexer.AddDirectory(newDirectory);
            }

            var findedFiles = indexer.Find("AAA");

            Assert.IsTrue(findedFiles.Count == 11);
        }
Пример #2
0
        public void SimpleByWordParserTest()
        {
            SimpleByWordParser parser = new SimpleByWordParser();
            var words = parser.GetWordList("Abc aaa d.");

            Assert.AreEqual("Abc", words[0]);
            Assert.AreEqual("aaa", words[1]);
            Assert.AreEqual("d", words[2]);
        }
Пример #3
0
        public void WatcherTest()
        {
            SimpleByWordParser parser  = new SimpleByWordParser();
            Indexer            indexer = new Indexer(parser);

            var testFilesDirectory = @"D:\MyProjects\Tests";
            var testFileName       = @"text.txt";

            CreateTestFile(testFilesDirectory, testFileName);
            indexer.AddFile(testFilesDirectory + "\\" + testFileName);

            var findedFiles = indexer.Find("AAA");

            Assert.AreEqual(1, findedFiles.Count);

            File.Delete(testFilesDirectory + "\\" + testFileName);
            Thread.Sleep(1000);
            findedFiles = indexer.Find("AAA");
            Assert.AreEqual(0, findedFiles.Count);

            indexer.AddDirectory(testFilesDirectory);
            using (var a = File.CreateText(testFilesDirectory + "\\1" + testFileName))
            {
                a.Write("WWW");
            }
            Thread.Sleep(1000);
            findedFiles = indexer.Find("WWW");
            Assert.AreEqual(1, findedFiles.Count);


            var nextFolder = testFilesDirectory + "\\" + "tst";

            Directory.CreateDirectory(nextFolder);
            using (var a = File.CreateText(nextFolder + "\\" + testFileName))
            {
                a.Write("GGG");
            }
            indexer.AddFile(nextFolder + "\\" + testFileName);
            using (var a = File.CreateText(nextFolder + "\\" + testFileName))
            {
                a.Write("ZZZ");
            }
            Thread.Sleep(2000);
            findedFiles = indexer.Find("ZZZ");
            Assert.AreEqual(1, findedFiles.Count);
        }
Пример #4
0
        static void Main(string[] args)
        {
            WriteHelp();
            Boolean exit = false;
            //Созаем парсер
            var textParser = new SimpleByWordParser();
            //Создаем индексатор на основе простого парсера
            var indexer = new Indexer(textParser);

            while (!exit)
            {
                var res = Console.ReadLine() ?? "";
                exit = res.ToLowerInvariant().Equals("q");
                try
                {
                    if (!exit)
                    {
                        if (res.StartsWith("addc"))
                        {
                            var directoryPath = res.Remove(0, 4).Trim();
                            indexer.AddDirectory(directoryPath);
                        }
                        else if (res.StartsWith("add"))
                        {
                            var filePath = res.Remove(0, 3).Trim();
                            indexer.AddFile(filePath);
                        }
                        else if (res.StartsWith("?"))
                        {
                            var quest  = res.Remove(0, 1).Trim();
                            var result = indexer.Find(quest);
                            if (result.Count == 0)
                            {
                                Console.WriteLine("В коллекции нет файлов!");
                            }
                            else
                            {
                                foreach (var finddFiles in result)
                                {
                                    Console.WriteLine(finddFiles);
                                }
                            }
                        }
                        else if (res.StartsWith("files"))
                        {
                            var files = indexer.GetAddedFiles();
                            foreach (var file in files)
                            {
                                Console.WriteLine(file);
                            }
                        }
                        else if (res.StartsWith("cats"))
                        {
                            var cats = indexer.GetAddedCatalogs();
                            foreach (var cat in cats)
                            {
                                Console.WriteLine(cat);
                            }
                        }
                        else if (res.StartsWith("help"))
                        {
                            WriteHelp();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }