2 // Microsoft.VisualBasic.* Test Cases
5 // Gert Driesen (drieseng@users.sourceforge.net)
13 using System.CodeDom.Compiler;
15 using Microsoft.VisualBasic;
17 using NUnit.Framework;
19 namespace MonoTests.Microsoft.VisualBasic
22 public class CodeGeneratorFromExpressionTest
24 VBCodeProvider provider;
25 ICodeGenerator generator;
26 CodeGeneratorOptions options;
31 provider = new VBCodeProvider ();
32 generator = provider.CreateGenerator ();
33 options = new CodeGeneratorOptions ();
37 [ExpectedException (typeof (ArgumentException))]
38 public void DefaultExpressionTest ()
40 using (StringWriter sw = new StringWriter ()) {
41 Generate(new CodeExpression (), sw);
47 [ExpectedException (typeof (ArgumentNullException))]
48 public void NullExpressionTest ()
50 using (StringWriter sw = new StringWriter ()) {
56 public void TypeReferenceExpressionTest ()
58 StringBuilder sb = new StringBuilder();
60 using (StringWriter sw = new StringWriter (sb)) {
61 Assert.AreEqual ("Boolean", Generate (new CodeTypeReferenceExpression (typeof (bool)), sw), "#1");
63 Assert.AreEqual ("Byte", Generate (new CodeTypeReferenceExpression (typeof (byte)), sw), "#2");
65 Assert.AreEqual ("Char", Generate (new CodeTypeReferenceExpression (typeof (char)), sw), "#3");
67 Assert.AreEqual ("Date", Generate (new CodeTypeReferenceExpression (typeof (DateTime)), sw), "#4");
69 Assert.AreEqual ("Decimal", Generate (new CodeTypeReferenceExpression (typeof (decimal)), sw), "#5");
71 Assert.AreEqual ("Double", Generate (new CodeTypeReferenceExpression (typeof (double)), sw), "#6");
73 Assert.AreEqual ("Short", Generate (new CodeTypeReferenceExpression (typeof (short)), sw), "#7");
75 Assert.AreEqual ("Integer", Generate (new CodeTypeReferenceExpression (typeof (int)), sw), "#8");
77 Assert.AreEqual ("Long", Generate (new CodeTypeReferenceExpression (typeof (long)), sw), "#9");
79 Assert.AreEqual ("Single", Generate (new CodeTypeReferenceExpression (typeof (float)), sw), "#10");
81 Assert.AreEqual ("Object", Generate (new CodeTypeReferenceExpression (typeof (object)), sw), "#11");
83 Assert.AreEqual (typeof (void).FullName, Generate (new CodeTypeReferenceExpression (typeof (void)), sw), "#12");
85 Assert.AreEqual (typeof (void).FullName, Generate (new CodeTypeReferenceExpression ((string) null), sw), "#13");
87 Assert.AreEqual (typeof (void).FullName, Generate (new CodeTypeReferenceExpression (""), sw), "#14");
90 Assert.AreEqual ("SByte", Generate (new CodeTypeReferenceExpression (typeof (sbyte)), sw), "#15");
92 Assert.AreEqual ("UShort", Generate (new CodeTypeReferenceExpression (typeof (ushort)), sw), "#16");
94 Assert.AreEqual ("UInteger", Generate (new CodeTypeReferenceExpression (typeof (uint)), sw), "#17");
96 Assert.AreEqual ("ULong", Generate (new CodeTypeReferenceExpression (typeof (ulong)), sw), "#18");
99 Assert.AreEqual (typeof (sbyte).FullName, Generate (new CodeTypeReferenceExpression (typeof (sbyte)), sw), "#19");
101 Assert.AreEqual (typeof(ushort).FullName, Generate (new CodeTypeReferenceExpression (typeof (ushort)), sw), "#20");
103 Assert.AreEqual (typeof(uint).FullName, Generate (new CodeTypeReferenceExpression (typeof (uint)), sw), "#21");
105 Assert.AreEqual (typeof(ulong).FullName, Generate (new CodeTypeReferenceExpression (typeof (ulong)), sw), "#22");
112 private string Generate (CodeExpression expression, StringWriter sw)
114 generator.GenerateCodeFromExpression (expression, sw, options);
115 return sw.ToString ();