blob: a3061d5c430244285cd164bced41784ef30eeb5b [file] [log] [blame]
using J2N;
using Lucene.Net.Attributes;
using NUnit.Framework;
using System.IO;
using System.Reflection;
using Assert = Lucene.Net.TestFramework.Assert;
namespace Lucene.Net.Cli.SourceCode
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
public class SourceCodeParserTest
{
[Test]
[LuceneNetSpecific]
public void TestSourceCodeSectionParser()
{
var parser = new SourceCodeSectionParser();
using var output = new MemoryStream();
using (var input = this.GetType().FindAndGetManifestResourceStream("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());
}
}
}