2 // Microsoft.VisualBasic.* Test Cases
5 // Gert Driesen (drieseng@users.sourceforge.net)
10 using System.Globalization;
13 using System.CodeDom.Compiler;
15 using NUnit.Framework;
17 namespace MonoTests.Microsoft.VisualBasic
21 /// Test ICodeGenerator's GenerateCodeFromType, along with a
22 /// minimal set CodeDom components.
26 public class CodeGeneratorFromTypeTest : CodeGeneratorTestBase
28 CodeTypeDeclaration type = null;
34 type = new CodeTypeDeclaration ();
37 protected override void Generate ()
39 generator.GenerateCodeFromType (type, writer, options);
44 public void DefaultTypeTest ()
47 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
48 "Public Class {0}End Class{0}", writer.NewLine), Code);
52 [ExpectedException (typeof (NullReferenceException))]
53 public void NullTypeTest ()
60 public void SimpleTypeTest ()
64 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
65 "Public Class Test1{0}End Class{0}", writer.NewLine), Code);
69 public void AttributesAndTypeTest ()
73 CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
75 type.CustomAttributes.Add (attrDec);
77 attrDec = new CodeAttributeDeclaration ();
79 type.CustomAttributes.Add (attrDec);
82 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
83 "<A(), _{0} B()> _{0}Public Class Test1{0}End Class{0}",
84 writer.NewLine), Code);
88 public void EventMembersTypeTest1 ()
92 CodeMemberEvent evt = new CodeMemberEvent ();
94 CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
96 evt.CustomAttributes.Add (attrDec);
98 attrDec = new CodeAttributeDeclaration ();
100 evt.CustomAttributes.Add (attrDec);
102 type.Members.Add (evt);
105 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
106 "Public Class Test1{0} {0} <A(), _{0} B()> _{0} "
107 + "Private Event As System.Void{0}End Class{0}", writer.NewLine), Code);
111 public void EventMembersTypeTest2 ()
115 CodeMemberEvent evt = new CodeMemberEvent ();
116 evt.Name = "OnClick";
117 evt.Attributes = MemberAttributes.Public;
118 evt.Type = new CodeTypeReference(typeof (int));
119 type.Members.Add (evt);
122 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
123 "Public Class Test1{0} {0} "
124 + "Public Event OnClick As Integer{0}"
125 + "End Class{0}", writer.NewLine), Code);
129 public void FieldMembersTypeTest1 ()
133 CodeMemberField fld = new CodeMemberField ();
135 CodeAttributeDeclaration attrDec = new CodeAttributeDeclaration ();
137 fld.CustomAttributes.Add (attrDec);
139 attrDec = new CodeAttributeDeclaration ();
141 fld.CustomAttributes.Add (attrDec);
143 type.Members.Add (fld);
146 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
147 "Public Class Test1{0} {0} <A(), _{0} B()> _{0} "
148 + "Private As System.Void{0}End Class{0}", writer.NewLine), Code);
152 public void FieldMembersTypeTest2 ()
156 CodeMemberField fld = new CodeMemberField ();
158 fld.Attributes = MemberAttributes.Public;
159 fld.Type = new CodeTypeReference (typeof (int));
160 type.Members.Add (fld);
163 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
164 "Public Class Test1{0} {0} "
165 + "Public Name As Integer{0}"
166 + "End Class{0}", writer.NewLine), Code);