public void TestSourceCodeSectionParser()
        {
            var parser       = new SourceCodeSectionParser();
            var thisAssembly = this.GetType().GetTypeInfo().Assembly;

            using (var output = new MemoryStream())
            {
                using (var input = thisAssembly.FindAndGetManifestResourceStream(this.GetType(), "TestInputForParser.cs"))
                {
                    parser.ParseSourceCodeFiles(input, output);
                }

                output.Seek(0, SeekOrigin.Begin);

                using (var reader = new StreamReader(output, SourceCodeSectionParser.ENCODING))
                {
                    Assert.AreEqual("using System;", reader.ReadLine());
                    Assert.AreEqual("using System.Collections.Generic;", reader.ReadLine());
                    Assert.AreEqual("using System.Linq;", reader.ReadLine());
                    Assert.AreEqual("using System.Threading.Tasks;", reader.ReadLine());
                    Assert.AreEqual("using System.Reflection;", reader.ReadLine());
                    Assert.AreEqual("using System.Xml;", reader.ReadLine());
                    Assert.AreEqual("", reader.ReadLine());
                    Assert.AreEqual("namespace Lucene.Net.Cli.SourceCode", reader.ReadLine());
                    Assert.AreEqual("{", reader.ReadLine());
                    Assert.AreEqual("    public class TestInputForParser", reader.ReadLine());
                    Assert.AreEqual("    {", reader.ReadLine());
                    Assert.AreEqual("        public void Foo()", reader.ReadLine());
                    Assert.AreEqual("        {", reader.ReadLine());
                    Assert.AreEqual("            Console.WriteLine(\"Foo\");", reader.ReadLine());
                    Assert.AreEqual("        }", reader.ReadLine());
                    Assert.AreEqual("", reader.ReadLine());
                    Assert.AreEqual("        public void Bar()", reader.ReadLine());
                    Assert.AreEqual("        {", reader.ReadLine());
                    Assert.AreEqual("            Console.WriteLine(\"Bar2\");", reader.ReadLine());
                    Assert.AreEqual("        }", reader.ReadLine());
                    Assert.AreEqual("    }", reader.ReadLine());
                    Assert.AreEqual("}", reader.ReadLine());
                    Assert.AreEqual(null, reader.ReadLine());
                    Assert.AreEqual(null, reader.ReadLine());
                }
            }
        }