/NRefactory/ICSharpCode.NRefactory.VB.Tests/Parser/TypeLevel/FieldDeclarationTests.cs

http://github.com/icsharpcode/ILSpy · C# · 74 lines · 61 code · 11 blank · 2 comment · 0 complexity · f11a82d73ea0b8482d86919fe40ef2a8 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 ICSharpCode.NRefactory.VB.Ast;
  5. using NUnit.Framework;
  6. namespace ICSharpCode.NRefactory.VB.Tests.Ast
  7. {
  8. [TestFixture]
  9. public class FieldDeclarationTests
  10. {
  11. #region VB.NET
  12. [Test]
  13. public void VBNetSimpleFieldDeclarationTest()
  14. {
  15. FieldDeclaration fd = ParseUtil.ParseTypeMember<FieldDeclaration>("myField As Integer(,,,)");
  16. Assert.AreEqual(1, fd.Fields.Count);
  17. Assert.AreEqual("System.Int32", ((VariableDeclaration)fd.Fields[0]).TypeReference.Type);
  18. Assert.AreEqual("System.Int32", ((VariableDeclaration)fd.Fields[0]).TypeReference.Type);
  19. Assert.AreEqual("myField", ((VariableDeclaration)fd.Fields[0]).Name);
  20. Assert.AreEqual(new int[] { 3 } , ((VariableDeclaration)fd.Fields[0]).TypeReference.RankSpecifier);
  21. }
  22. [Test]
  23. public void VBNetMultiFieldDeclarationTest()
  24. {
  25. FieldDeclaration fd = ParseUtil.ParseTypeMember<FieldDeclaration>("a, b As String");
  26. Assert.AreEqual(2, fd.Fields.Count);
  27. Assert.AreEqual("System.String", ((VariableDeclaration)fd.Fields[0]).TypeReference.Type);
  28. Assert.IsFalse(((VariableDeclaration)fd.Fields[0]).TypeReference.IsArrayType);
  29. Assert.AreEqual("System.String", ((VariableDeclaration)fd.Fields[1]).TypeReference.Type);
  30. Assert.IsFalse(((VariableDeclaration)fd.Fields[1]).TypeReference.IsArrayType);
  31. }
  32. [Test]
  33. public void VBNetMultiFieldsOnSingleLineTest()
  34. {
  35. string program = "Class TestClass : Dim a : Dim b : End Class";
  36. TypeDeclaration td = ParseUtil.ParseGlobal<TypeDeclaration>(program);
  37. Assert.AreEqual(2, td.Children.Count);
  38. Assert.IsTrue(td.Children[0] is FieldDeclaration);
  39. Assert.IsTrue(td.Children[1] is FieldDeclaration);
  40. }
  41. [Test]
  42. public void VBNetMultiFieldDeclarationTest2()
  43. {
  44. FieldDeclaration fd = ParseUtil.ParseTypeMember<FieldDeclaration>("Dim a, b() As String");
  45. Assert.AreEqual(2, fd.Fields.Count);
  46. Assert.AreEqual("System.String", ((VariableDeclaration)fd.Fields[0]).TypeReference.Type);
  47. Assert.AreEqual("System.String", ((VariableDeclaration)fd.Fields[1]).TypeReference.Type);
  48. Assert.IsFalse(((VariableDeclaration)fd.Fields[0]).TypeReference.IsArrayType);
  49. Assert.IsTrue(((VariableDeclaration)fd.Fields[1]).TypeReference.IsArrayType);
  50. }
  51. [Test]
  52. public void VBNetMultiFieldDeclarationTest3()
  53. {
  54. FieldDeclaration fd = ParseUtil.ParseTypeMember<FieldDeclaration>("Dim a(), b As String");
  55. Assert.AreEqual(2, fd.Fields.Count);
  56. Assert.AreEqual("System.String", ((VariableDeclaration)fd.Fields[0]).TypeReference.Type);
  57. Assert.AreEqual("System.String", ((VariableDeclaration)fd.Fields[1]).TypeReference.Type);
  58. Assert.IsTrue(((VariableDeclaration)fd.Fields[0]).TypeReference.IsArrayType);
  59. Assert.IsFalse(((VariableDeclaration)fd.Fields[1]).TypeReference.IsArrayType);
  60. }
  61. #endregion
  62. }
  63. }