mirror of https://github.com/icsharpcode/ILSpy.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							79 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							79 lines
						
					
					
						
							2.2 KiB
						
					
					
				// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) | 
						|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) | 
						|
 | 
						|
using System; | 
						|
using System.Collections.Generic; | 
						|
using System.IO; | 
						|
 | 
						|
using ICSharpCode.NRefactory.VB.Ast; | 
						|
using ICSharpCode.NRefactory.VB.Parser; | 
						|
using ICSharpCode.NRefactory.VB.PrettyPrinter; | 
						|
 | 
						|
using NUnit.Framework; | 
						|
 | 
						|
namespace ICSharpCode.NRefactory.VB.Tests.PrettyPrinter | 
						|
{ | 
						|
	[TestFixture] | 
						|
	public class SpecialOutputVisitorTest | 
						|
	{ | 
						|
		void TestProgram(string program) | 
						|
		{ | 
						|
			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						|
			parser.Parse(); | 
						|
			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						|
			VBNetOutputVisitor outputVisitor = new VBNetOutputVisitor(); | 
						|
			outputVisitor.Options.IndentationChar = ' '; | 
						|
			outputVisitor.Options.TabSize = 2; | 
						|
			outputVisitor.Options.IndentSize = 2; | 
						|
			using (SpecialNodesInserter.Install(parser.Lexer.SpecialTracker.RetrieveSpecials(), | 
						|
			                                    outputVisitor)) { | 
						|
				outputVisitor.VisitCompilationUnit(parser.CompilationUnit, null); | 
						|
			} | 
						|
			Assert.AreEqual("", outputVisitor.Errors.ErrorOutput); | 
						|
			Assert.AreEqual(program.Replace("\r", ""), outputVisitor.Text.TrimEnd().Replace("\r", "")); | 
						|
			parser.Dispose(); | 
						|
		} | 
						|
		 | 
						|
		[Test] | 
						|
		public void Enum() | 
						|
		{ | 
						|
			TestProgram("Enum Test\n" + | 
						|
			              "  ' a\n" + | 
						|
			              "  m1\n" + | 
						|
			              "  ' b\n" + | 
						|
			              "  m2\n" + | 
						|
			              "  ' c\n" + | 
						|
			              "End Enum\n" + | 
						|
			              "' d"); | 
						|
		} | 
						|
		 | 
						|
		[Test] | 
						|
		public void CommentsInsideMethod() | 
						|
		{ | 
						|
			TestProgram(@"Public Class Class1 | 
						|
  Private Function test(l As Integer, lvw As Integer) As Boolean | 
						|
    ' Begin | 
						|
    Dim i As Integer = 1 | 
						|
    Return False | 
						|
    ' End of method | 
						|
  End Function | 
						|
End Class"); | 
						|
		} | 
						|
		 | 
						|
		[Test] | 
						|
		public void BlankLines() | 
						|
		{ | 
						|
			TestProgram("Imports System\n" + | 
						|
			              "\n" + | 
						|
			              "Imports System.IO"); | 
						|
			TestProgram("Imports System\n" + | 
						|
			              "\n" + | 
						|
			              "\n" + | 
						|
			              "Imports System.IO"); | 
						|
			TestProgram("\n" + | 
						|
			              "' Some comment\n" + | 
						|
			              "\n" + | 
						|
			              "Imports System.IO"); | 
						|
		} | 
						|
	} | 
						|
}
 | 
						|
 |