A builder pattern, factory pattern crosover which allows us to get the appropriate file parser as well as specify the file path, encoding, and parse strategy.
コード例 #1
0
ファイル: FileParserTests.cs プロジェクト: kzemek/FileScanner
        public void ParseFile_GivenFilePath_UTF8Encoding_AndReplaceCapitalParseMode()
        {
            string filePath = "test.txt";
            StreamWriter sw = new StreamWriter(File.Create(filePath));
            foreach (string s in testStrings)
                sw.WriteLine(s);
            sw.Close();

            FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8, ParseStrategy.ReplaceCapitalLetters());
            IFileParser fileParser = fileParserBuilder.Create();
            StreamReader sr = fileParser.ParseFile();

            int i = 0;
            while (!sr.EndOfStream)
            {
                Assert.IsTrue(sr.ReadLine() == lowercaseResultStrings[i]);
                i++;
            }

            sr.Close();
        }
コード例 #2
0
ファイル: FileParserTests.cs プロジェクト: kzemek/FileScanner
        public void ParseFile_GivenFilePath_UTF8Encoding_AndLeaveUnchangedParseMode()
        {
            string filePath = "test.txt";
            StreamWriter sw = new StreamWriter(File.Create(filePath));
            foreach (string s in testStrings)
                sw.WriteLine(s);
            sw.Close();

            FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8);
            IFileParser fileParser = fileParserBuilder.Create();
            StreamReader sr = fileParser.ParseFile();

            int i = 0;
            while(!sr.EndOfStream)
            {
                Assert.IsTrue(sr.ReadLine() == defaultResultStrings[i]);
                i++;
            }

            sr.Close();
        }
コード例 #3
0
ファイル: ISearchee.cs プロジェクト: kzemek/FileScanner
 internal ParsedFileSearchee(string path, FileParserFactory fileParserFactory)
 {
     this.Path = path;
     this._parserFactory = fileParserFactory;
 }
コード例 #4
0
ファイル: FileParserTests.cs プロジェクト: kzemek/FileScanner
        public void ParseFile_GivenHtmlFilePath_UTF8Encoding_AndLeaveUnchangedParseStrategy()
        {
            string filePath = "test.html";
            StreamWriter sw = new StreamWriter(File.Create(filePath));
            sw.Write(htmlTest);
            sw.Close();

            FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8);
            IFileParser fileParser = fileParserBuilder.Create();
            StreamReader sr = fileParser.ParseFile();

            Assert.IsTrue(sr.ReadToEnd() == htmlTestResult);

            sr.Close();
        }
コード例 #5
0
ファイル: Search.cs プロジェクト: kzemek/FileScanner
        private StreamReader GetParsedFileStream(IParseStrategy parseStrategy)
        {
            var fileParserFactory = new FileParserFactory(_searchFile, parseStrategy);

            var fileParser = fileParserFactory.Create();
            var streamReader = fileParser.ParseFile();

            return streamReader;
        }