/NRefactory/ICSharpCode.NRefactory.VB.Tests/Parser/GlobalScope/ImportsStatementTests.cs

http://github.com/icsharpcode/ILSpy · C# · 168 lines · 46 code · 11 blank · 111 comment · 0 complexity · ff014faa88e9af98332f6dac65478e29 MD5 · raw file

  1. // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
  2. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
  3. using System;
  4. using System.IO;
  5. using ICSharpCode.NRefactory.VB.Parser;
  6. using ICSharpCode.NRefactory.VB.Ast;
  7. using NUnit.Framework;
  8. namespace ICSharpCode.NRefactory.VB.Tests.Ast
  9. {
  10. [TestFixture]
  11. public class ImportsStatementTests
  12. {
  13. [Test]
  14. public void InvalidImportsStatement()
  15. {
  16. string program = "Imports\n";
  17. ParseUtil.ParseGlobal<ImportsStatement>(program, true);
  18. }
  19. [Test]
  20. public void InvalidImportsStatement2()
  21. {
  22. string program = "Imports ,\n";
  23. ParseUtil.ParseGlobal<ImportsStatement>(program, true);
  24. }
  25. [Test]
  26. public void SimpleImportsStatement()
  27. {
  28. string program = "Imports System\n";
  29. var clause1 = new MemberImportsClause {
  30. Member = new SimpleType("System")
  31. };
  32. var node = new ImportsStatement();
  33. node.AddChild(clause1, ImportsStatement.ImportsClauseRole);
  34. ParseUtil.AssertGlobal(program, node);
  35. }
  36. [Test]
  37. public void QualifiedTypeImportsStatement()
  38. {
  39. string program = "Imports My.Name.Space\n";
  40. var clause2 = new MemberImportsClause {
  41. Member = new QualifiedType(new QualifiedType(new SimpleType("My"), new Identifier ("Name", AstLocation.Empty)), new Identifier ("Space", AstLocation.Empty))
  42. };
  43. var node = new ImportsStatement();
  44. node.AddChild(clause2, ImportsStatement.ImportsClauseRole);
  45. ParseUtil.AssertGlobal(program, node);
  46. }
  47. //
  48. // [Test]
  49. // public void VBNetUsingAliasDeclarationTest()
  50. // {
  51. // string program = "Imports TESTME=System\n" +
  52. // "Imports myAlias=My.Name.Space\n" +
  53. // "Imports StringCollection = System.Collections.Generic.List(Of string)\n";
  54. // VBParser parser = ParserFactory.CreateParser(new StringReader(program));
  55. // parser.Parse();
  56. //
  57. // Assert.AreEqual("", parser.Errors.ErrorOutput);
  58. // CheckAliases(parser.CompilationUnit);
  59. // }
  60. //
  61. // [Test]
  62. // public void VBNetComplexUsingAliasDeclarationTest()
  63. // {
  64. // string program = "Imports NS1, AL=NS2, NS3, AL2=NS4, NS5\n";
  65. // VBParser parser = ParserFactory.CreateParser(new StringReader(program));
  66. // parser.Parse();
  67. //
  68. // Assert.AreEqual("", parser.Errors.ErrorOutput);
  69. // // TODO : Extend test ...
  70. // }
  71. //
  72. // [Test]
  73. // public void VBNetXmlNamespaceUsingTest()
  74. // {
  75. // string program = "Imports <xmlns=\"http://icsharpcode.net/sharpdevelop/avalonedit\">";
  76. // VBParser parser = ParserFactory.CreateParser(new StringReader(program));
  77. // parser.Parse();
  78. //
  79. // Assert.AreEqual("", parser.Errors.ErrorOutput);
  80. // CompilationUnit unit = parser.CompilationUnit;
  81. //
  82. // Assert.AreEqual(1, unit.Children.Count);
  83. // Assert.IsTrue(unit.Children[0] is ImportsStatement);
  84. // ImportsStatement ud = (ImportsStatement)unit.Children[0];
  85. // Assert.AreEqual(1, ud.ImportsClauses.Count);
  86. // Assert.IsFalse(ud.ImportsClauses[0].IsAlias);
  87. // Assert.IsTrue(ud.ImportsClauses[0].IsXml);
  88. //
  89. // Assert.AreEqual("xmlns", ud.ImportsClauses[0].XmlPrefix);
  90. // Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name);
  91. // }
  92. //
  93. // [Test]
  94. // public void VBNetXmlNamespaceWithPrefixUsingTest()
  95. // {
  96. // string program = "Imports <xmlns:avalonedit=\"http://icsharpcode.net/sharpdevelop/avalonedit\">";
  97. // VBParser parser = ParserFactory.CreateParser(new StringReader(program));
  98. // parser.Parse();
  99. //
  100. // Assert.AreEqual("", parser.Errors.ErrorOutput);
  101. // CompilationUnit unit = parser.CompilationUnit;
  102. //
  103. // Assert.AreEqual(1, unit.Children.Count);
  104. // Assert.IsTrue(unit.Children[0] is ImportsStatement);
  105. // ImportsStatement ud = (ImportsStatement)unit.Children[0];
  106. // Assert.AreEqual(1, ud.ImportsClauses.Count);
  107. // Assert.IsFalse(ud.ImportsClauses[0].IsAlias);
  108. // Assert.IsTrue(ud.ImportsClauses[0].IsXml);
  109. //
  110. // Assert.AreEqual("xmlns:avalonedit", ud.ImportsClauses[0].XmlPrefix);
  111. // Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name);
  112. // }
  113. //
  114. // [Test]
  115. // public void VBNetXmlNamespaceSingleQuotedUsingTest()
  116. // {
  117. // string program = "Imports <xmlns='http://icsharpcode.net/sharpdevelop/avalonedit'>";
  118. // VBParser parser = ParserFactory.CreateParser(new StringReader(program));
  119. // parser.Parse();
  120. //
  121. // Assert.AreEqual("", parser.Errors.ErrorOutput);
  122. // CompilationUnit unit = parser.CompilationUnit;
  123. //
  124. // Assert.AreEqual(1, unit.Children.Count);
  125. // Assert.IsTrue(unit.Children[0] is ImportsStatement);
  126. // ImportsStatement ud = (ImportsStatement)unit.Children[0];
  127. // Assert.AreEqual(1, ud.ImportsClauses.Count);
  128. // Assert.IsFalse(ud.ImportsClauses[0].IsAlias);
  129. // Assert.IsTrue(ud.ImportsClauses[0].IsXml);
  130. //
  131. // Assert.AreEqual("xmlns", ud.ImportsClauses[0].XmlPrefix);
  132. // Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name);
  133. // }
  134. //
  135. // [Test]
  136. // public void VBNetXmlNamespaceSingleQuotedWithPrefixUsingTest()
  137. // {
  138. // string program = "Imports <xmlns:avalonedit='http://icsharpcode.net/sharpdevelop/avalonedit'>";
  139. // VBParser parser = ParserFactory.CreateParser(new StringReader(program));
  140. // parser.Parse();
  141. //
  142. // Assert.AreEqual("", parser.Errors.ErrorOutput);
  143. // CompilationUnit unit = parser.CompilationUnit;
  144. //
  145. // Assert.AreEqual(1, unit.Children.Count);
  146. // Assert.IsTrue(unit.Children[0] is ImportsStatement);
  147. // ImportsStatement ud = (ImportsStatement)unit.Children[0];
  148. // Assert.AreEqual(1, ud.ImportsClauses.Count);
  149. // Assert.IsFalse(ud.ImportsClauses[0].IsAlias);
  150. // Assert.IsTrue(ud.ImportsClauses[0].IsXml);
  151. //
  152. // Assert.AreEqual("xmlns:avalonedit", ud.ImportsClauses[0].XmlPrefix);
  153. // Assert.AreEqual("http://icsharpcode.net/sharpdevelop/avalonedit", ud.ImportsClauses[0].Name);
  154. // }
  155. // #endregion
  156. }
  157. }