2 // Microsoft.VisualBasic.* Test Cases
5 // Frederik Carlier <frederik.carlier@carlier-online.be>
6 // Rolf Bjarne Kvinge <RKvinge@novell.com>
14 using System.CodeDom.Compiler;
16 using Microsoft.VisualBasic;
18 using NUnit.Framework;
20 namespace MonoTests.Microsoft.VisualBasic
23 public class CodeGeneratorFromBinaryOperatorTest
25 VBCodeProvider provider;
26 ICodeGenerator generator;
27 CodeGeneratorOptions options;
32 provider = new VBCodeProvider ();
33 generator = provider.CreateGenerator ();
34 options = new CodeGeneratorOptions ();
38 public void TypeReferenceExpressionTest ()
40 StringBuilder sb = new StringBuilder();
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";
48 CodeBinaryOperatorExpression expression = new CodeBinaryOperatorExpression(
50 CodeBinaryOperatorType.IdentityInequality,
51 new CodePrimitiveExpression(null));
53 Assert.AreEqual ("(Not (Me.Parent) Is Nothing)", Generate (expression, sw), "#1");
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";
64 CodeBinaryOperatorExpression expression = new CodeBinaryOperatorExpression(
65 new CodePrimitiveExpression(null),
66 CodeBinaryOperatorType.IdentityInequality,
69 Assert.AreEqual ("(Not (Me.Parent) Is Nothing)", Generate (expression, sw), "#2");
74 private string Generate (CodeExpression expression, StringWriter sw)
76 generator.GenerateCodeFromExpression (expression, sw, options);
77 return sw.ToString ();