| 
							
								 | 
							
							// 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.IO; | 
						
						
						
						
							 | 
							
								 | 
							
							using ICSharpCode.NRefactory.VB.Parser; | 
						
						
						
						
							 | 
							
								 | 
							
							using ICSharpCode.NRefactory.VB.Ast; | 
						
						
						
						
							 | 
							
								 | 
							
							using NUnit.Framework; | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							namespace ICSharpCode.NRefactory.VB.Tests.Ast | 
						
						
						
						
							 | 
							
								 | 
							
							{ | 
						
						
						
						
							 | 
							
								 | 
							
								[TestFixture] | 
						
						
						
						
							 | 
							
								 | 
							
								public class ImportsStatementTests | 
						
						
						
						
							 | 
							
								 | 
							
								{ | 
						
						
						
						
							 | 
							
								 | 
							
									[Test] | 
						
						
						
						
							 | 
							
								 | 
							
									public void InvalidImportsStatement() | 
						
						
						
						
							 | 
							
								 | 
							
									{ | 
						
						
						
						
							 | 
							
								 | 
							
										string program = "Imports\n"; | 
						
						
						
						
							 | 
							
								 | 
							
										ParseUtil.ParseGlobal<ImportsStatement>(program, true); | 
						
						
						
						
							 | 
							
								 | 
							
									} | 
						
						
						
						
							 | 
							
								 | 
							
									 | 
						
						
						
						
							 | 
							
								 | 
							
									[Test] | 
						
						
						
						
							 | 
							
								 | 
							
									public void InvalidImportsStatement2() | 
						
						
						
						
							 | 
							
								 | 
							
									{ | 
						
						
						
						
							 | 
							
								 | 
							
										string program = "Imports ,\n"; | 
						
						
						
						
							 | 
							
								 | 
							
										ParseUtil.ParseGlobal<ImportsStatement>(program, true); | 
						
						
						
						
							 | 
							
								 | 
							
									} | 
						
						
						
						
							 | 
							
								 | 
							
									 | 
						
						
						
						
							 | 
							
								 | 
							
									[Test] | 
						
						
						
						
							 | 
							
								 | 
							
									[Ignore("Collection pattern matching is not implemented")] | 
						
						
						
						
							 | 
							
								 | 
							
									public void SimpleImportsStatement() | 
						
						
						
						
							 | 
							
								 | 
							
									{ | 
						
						
						
						
							 | 
							
								 | 
							
										string program = "Imports System\n"; | 
						
						
						
						
							 | 
							
								 | 
							
										 | 
						
						
						
						
							 | 
							
								 | 
							
										var clause1 = new MemberImportsClause { | 
						
						
						
						
							 | 
							
								 | 
							
											Member = new SimpleType("System") | 
						
						
						
						
							 | 
							
								 | 
							
										}; | 
						
						
						
						
							 | 
							
								 | 
							
										 | 
						
						
						
						
							 | 
							
								 | 
							
										var node = new ImportsStatement(); | 
						
						
						
						
							 | 
							
								 | 
							
										node.AddChild(clause1, ImportsStatement.ImportsClauseRole); | 
						
						
						
						
							 | 
							
								 | 
							
										 | 
						
						
						
						
							 | 
							
								 | 
							
										ParseUtil.AssertGlobal(program, node); | 
						
						
						
						
							 | 
							
								 | 
							
									} | 
						
						
						
						
							 | 
							
								 | 
							
									 | 
						
						
						
						
							 | 
							
								 | 
							
									[Test] | 
						
						
						
						
							 | 
							
								 | 
							
									[Ignore("Collection pattern matching is not implemented")] | 
						
						
						
						
							 | 
							
								 | 
							
									public void QualifiedTypeImportsStatement() | 
						
						
						
						
							 | 
							
								 | 
							
									{ | 
						
						
						
						
							 | 
							
								 | 
							
										string program = "Imports My.Name.Space\n"; | 
						
						
						
						
							 | 
							
								 | 
							
										 | 
						
						
						
						
							 | 
							
								 | 
							
										var clause2 = new MemberImportsClause { | 
						
						
						
						
							 | 
							
								 | 
							
											Member = new QualifiedType(new QualifiedType(new SimpleType("My"), new Identifier ("Name", TextLocation.Empty)), new Identifier ("Space", TextLocation.Empty)) | 
						
						
						
						
							 | 
							
								 | 
							
										}; | 
						
						
						
						
							 | 
							
								 | 
							
										 | 
						
						
						
						
							 | 
							
								 | 
							
										var node = new ImportsStatement(); | 
						
						
						
						
							 | 
							
								 | 
							
										node.AddChild(clause2, ImportsStatement.ImportsClauseRole); | 
						
						
						
						
							 | 
							
								 | 
							
										 | 
						
						
						
						
							 | 
							
								 | 
							
										ParseUtil.AssertGlobal(program, node); | 
						
						
						
						
							 | 
							
								 | 
							
									} | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//		[Test] | 
						
						
						
						
							 | 
							
								 | 
							
							//		public void VBNetUsingAliasDeclarationTest() | 
						
						
						
						
							 | 
							
								 | 
							
							//		{ | 
						
						
						
						
							 | 
							
								 | 
							
							//			string program = "Imports TESTME=System\n" + | 
						
						
						
						
							 | 
							
								 | 
							
							//				"Imports myAlias=My.Name.Space\n" + | 
						
						
						
						
							 | 
							
								 | 
							
							//				"Imports StringCollection = System.Collections.Generic.List(Of string)\n"; | 
						
						
						
						
							 | 
							
								 | 
							
							//			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						
						
						
						
							 | 
							
								 | 
							
							//			parser.Parse(); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						
						
						
						
							 | 
							
								 | 
							
							//			CheckAliases(parser.CompilationUnit); | 
						
						
						
						
							 | 
							
								 | 
							
							//		} | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//		[Test] | 
						
						
						
						
							 | 
							
								 | 
							
							//		public void VBNetComplexUsingAliasDeclarationTest() | 
						
						
						
						
							 | 
							
								 | 
							
							//		{ | 
						
						
						
						
							 | 
							
								 | 
							
							//			string program = "Imports NS1, AL=NS2, NS3, AL2=NS4, NS5\n"; | 
						
						
						
						
							 | 
							
								 | 
							
							//			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						
						
						
						
							 | 
							
								 | 
							
							//			parser.Parse(); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						
						
						
						
							 | 
							
								 | 
							
							//			// TODO : Extend test ... | 
						
						
						
						
							 | 
							
								 | 
							
							//		} | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//		[Test] | 
						
						
						
						
							 | 
							
								 | 
							
							//		public void VBNetXmlNamespaceUsingTest() | 
						
						
						
						
							 | 
							
								 | 
							
							//		{ | 
						
						
						
						
							 | 
							
								 | 
							
							//			string program = "Imports <xmlns=\"http://icsharpcode.net/sharpdevelop/avalonedit\">"; | 
						
						
						
						
							 | 
							
								 | 
							
							//			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						
						
						
						
							 | 
							
								 | 
							
							//			parser.Parse(); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						
						
						
						
							 | 
							
								 | 
							
							//			CompilationUnit unit = parser.CompilationUnit; | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, unit.Children.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(unit.Children[0] is ImportsStatement); | 
						
						
						
						
							 | 
							
								 | 
							
							//			ImportsStatement ud = (ImportsStatement)unit.Children[0]; | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, ud.ImportsClauses.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsFalse(ud.ImportsClauses[0].IsAlias); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(ud.ImportsClauses[0].IsXml); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("xmlns", ud.ImportsClauses[0].XmlPrefix); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name); | 
						
						
						
						
							 | 
							
								 | 
							
							//		} | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//		[Test] | 
						
						
						
						
							 | 
							
								 | 
							
							//		public void VBNetXmlNamespaceWithPrefixUsingTest() | 
						
						
						
						
							 | 
							
								 | 
							
							//		{ | 
						
						
						
						
							 | 
							
								 | 
							
							//			string program = "Imports <xmlns:avalonedit=\"http://icsharpcode.net/sharpdevelop/avalonedit\">"; | 
						
						
						
						
							 | 
							
								 | 
							
							//			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						
						
						
						
							 | 
							
								 | 
							
							//			parser.Parse(); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						
						
						
						
							 | 
							
								 | 
							
							//			CompilationUnit unit = parser.CompilationUnit; | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, unit.Children.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(unit.Children[0] is ImportsStatement); | 
						
						
						
						
							 | 
							
								 | 
							
							//			ImportsStatement ud = (ImportsStatement)unit.Children[0]; | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, ud.ImportsClauses.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsFalse(ud.ImportsClauses[0].IsAlias); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(ud.ImportsClauses[0].IsXml); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("xmlns:avalonedit", ud.ImportsClauses[0].XmlPrefix); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name); | 
						
						
						
						
							 | 
							
								 | 
							
							//		} | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//		[Test] | 
						
						
						
						
							 | 
							
								 | 
							
							//		public void VBNetXmlNamespaceSingleQuotedUsingTest() | 
						
						
						
						
							 | 
							
								 | 
							
							//		{ | 
						
						
						
						
							 | 
							
								 | 
							
							//			string program = "Imports <xmlns='http://icsharpcode.net/sharpdevelop/avalonedit'>"; | 
						
						
						
						
							 | 
							
								 | 
							
							//			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						
						
						
						
							 | 
							
								 | 
							
							//			parser.Parse(); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						
						
						
						
							 | 
							
								 | 
							
							//			CompilationUnit unit = parser.CompilationUnit; | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, unit.Children.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(unit.Children[0] is ImportsStatement); | 
						
						
						
						
							 | 
							
								 | 
							
							//			ImportsStatement ud = (ImportsStatement)unit.Children[0]; | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, ud.ImportsClauses.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsFalse(ud.ImportsClauses[0].IsAlias); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(ud.ImportsClauses[0].IsXml); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("xmlns", ud.ImportsClauses[0].XmlPrefix); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name); | 
						
						
						
						
							 | 
							
								 | 
							
							//		} | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//		[Test] | 
						
						
						
						
							 | 
							
								 | 
							
							//		public void VBNetXmlNamespaceSingleQuotedWithPrefixUsingTest() | 
						
						
						
						
							 | 
							
								 | 
							
							//		{ | 
						
						
						
						
							 | 
							
								 | 
							
							//			string program = "Imports <xmlns:avalonedit='http://icsharpcode.net/sharpdevelop/avalonedit'>"; | 
						
						
						
						
							 | 
							
								 | 
							
							//			VBParser parser = ParserFactory.CreateParser(new StringReader(program)); | 
						
						
						
						
							 | 
							
								 | 
							
							//			parser.Parse(); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("", parser.Errors.ErrorOutput); | 
						
						
						
						
							 | 
							
								 | 
							
							//			CompilationUnit unit = parser.CompilationUnit; | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, unit.Children.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(unit.Children[0] is ImportsStatement); | 
						
						
						
						
							 | 
							
								 | 
							
							//			ImportsStatement ud = (ImportsStatement)unit.Children[0]; | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual(1, ud.ImportsClauses.Count); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsFalse(ud.ImportsClauses[0].IsAlias); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.IsTrue(ud.ImportsClauses[0].IsXml); | 
						
						
						
						
							 | 
							
								 | 
							
							// | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("xmlns:avalonedit", ud.ImportsClauses[0].XmlPrefix); | 
						
						
						
						
							 | 
							
								 | 
							
							//			Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name); | 
						
						
						
						
							 | 
							
								 | 
							
							//		} | 
						
						
						
						
							 | 
							
								 | 
							
							//		#endregion | 
						
						
						
						
							 | 
							
								 | 
							
								} | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 |