In Test/System.Diagnostics:
[mono.git] / mcs / class / System / Test / Microsoft.VisualBasic / CodeGeneratorFromBinaryOperatorTest.cs
1 //
2 // Microsoft.VisualBasic.* Test Cases
3 //
4 // Authors:
5 //      Frederik Carlier  <frederik.carlier@carlier-online.be>
6 //      Rolf Bjarne Kvinge <RKvinge@novell.com>
7 //
8 // (c) 2005 Novell
9 //
10 using System;
11 using System.IO;
12 using System.Text;
13 using System.CodeDom;
14 using System.CodeDom.Compiler;
15
16 using Microsoft.VisualBasic;
17
18 using NUnit.Framework;
19
20 namespace MonoTests.Microsoft.VisualBasic
21 {
22         [TestFixture]
23         public class CodeGeneratorFromBinaryOperatorTest
24         {
25                 VBCodeProvider provider;
26                 ICodeGenerator generator;
27                 CodeGeneratorOptions options;
28
29                 [SetUp]
30                 public void SetUp ()
31                 {
32                         provider = new VBCodeProvider ();
33                         generator = provider.CreateGenerator ();
34                         options = new CodeGeneratorOptions ();
35                 }
36
37                 [Test]
38                 public void TypeReferenceExpressionTest ()
39                 {
40                         StringBuilder sb = new StringBuilder();
41
42                         using (StringWriter sw = new StringWriter (sb)) {
43                                 CodeThisReferenceExpression thisRef = new CodeThisReferenceExpression();
44                                 CodeFieldReferenceExpression parentField = new CodeFieldReferenceExpression();
45                                 parentField.TargetObject = thisRef;
46                                 parentField.FieldName = "Parent";
47
48                                 CodeBinaryOperatorExpression expression = new CodeBinaryOperatorExpression(
49                                         parentField,
50                                         CodeBinaryOperatorType.IdentityInequality,
51                                         new CodePrimitiveExpression(null));
52
53                                 Assert.AreEqual ("(Not (Me.Parent) Is Nothing)", Generate (expression, sw), "#1");
54                                 sw.Close ();
55                         }
56
57                         sb = new StringBuilder();
58                         using (StringWriter sw = new StringWriter (sb)) {
59                                 CodeThisReferenceExpression thisRef = new CodeThisReferenceExpression();
60                                 CodeFieldReferenceExpression parentField = new CodeFieldReferenceExpression();
61                                 parentField.TargetObject = thisRef;
62                                 parentField.FieldName = "Parent";
63
64                                 CodeBinaryOperatorExpression expression = new CodeBinaryOperatorExpression(
65                                         new CodePrimitiveExpression(null),
66                                         CodeBinaryOperatorType.IdentityInequality,
67                                         parentField);
68
69                                 Assert.AreEqual ("(Not (Me.Parent) Is Nothing)", Generate (expression, sw), "#2");
70                                 sw.Close ();
71                         }
72                 }
73
74                 private string Generate (CodeExpression expression, StringWriter sw)
75                 {
76                         generator.GenerateCodeFromExpression (expression, sw, options);
77                         return sw.ToString ();
78                 }
79         }
80 }