}
}
+ [Test]
+ public void ArrayIndexerExpressionTest ()
+ {
+ StringBuilder sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ Assert.AreEqual ("x(5)", Generate (new CodeArrayIndexerExpression(new CodeVariableReferenceExpression("x"), new CodePrimitiveExpression(5)), sw), "#1");
+ sb.Length = 0;
+ }
+ }
+
[Test]
public void PrimitiveExpressionTest_Char ()
{
generator.GenerateCodeFromExpression (expression, sw, options);
return sw.ToString ();
}
+
+
+ [Test]
+ public void ArrayCreateExpressionTest ()
+ {
+ StringBuilder sb;
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ Assert.AreEqual ("New Integer() {5}",
+ Generate (new CodeArrayCreateExpression(
+ typeof(int),
+ new CodeExpression [] {
+ new CodePrimitiveExpression (5)
+ })
+ , sw));
+ sw.Close ();
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ Assert.AreEqual ("New Integer((5) - 1) {}",
+ Generate (new CodeArrayCreateExpression(
+ typeof(int),
+ new CodePrimitiveExpression (5))
+ , sw));
+ sw.Close ();
+ }
+
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ Assert.AreEqual ("New String() {\"a\", \"b\", \"c\"}",
+ Generate (new CodeArrayCreateExpression(
+ typeof(string),
+ new CodeExpression [] {
+ new CodePrimitiveExpression ("a"),
+ new CodePrimitiveExpression ("b"),
+ new CodePrimitiveExpression ("c"),
+ })
+ , sw));
+ sw.Close ();
+ }
+ }
+
+ [Test]
+ public void EscapedIdentifierTest ()
+ {
+ StringBuilder sb;
+ string code;
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeVariableReferenceExpression ("set"), sw);
+ Assert.AreEqual ("[set]", code, "#01");
+ sw.Close ();
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeTypeReferenceExpression ("set"), sw);
+ Assert.AreEqual ("[set]", code, "#02");
+ sw.Close ();
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodePropertyReferenceExpression (null, "set"), sw);
+ Assert.AreEqual ("[set]", code, "#03");
+ sw.Close ();
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeMethodReferenceExpression (null, "set"), sw);
+ Assert.AreEqual ("[set]", code, "#04");
+ sw.Close ();
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeFieldReferenceExpression (null, "set"), sw);
+ Assert.AreEqual ("[set]", code, "#05");
+ sw.Close ();
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (null, "set"), sw);
+ Assert.AreEqual ("setEvent", code, "#06");
+ sw.Close ();
+ }
+ }
+
+ [Test]
+ public void EventReferenceTest ()
+ {
+ StringBuilder sb;
+ string code;
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (null, null), sw);
+ Assert.AreEqual ("[Event]", code, "#01");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (null, "abc"), sw);
+ Assert.AreEqual ("abcEvent", code, "#02");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (new CodeThisReferenceExpression (), null), sw);
+ Assert.AreEqual ("Me.Event", code, "#03");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (new CodeThisReferenceExpression (), "abc"), sw);
+ Assert.AreEqual ("Me.abcEvent", code, "#04");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (new CodePrimitiveExpression ("primitive"), null), sw);
+ Assert.AreEqual ("\"primitive\".", code, "#05");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeEventReferenceExpression (new CodePrimitiveExpression ("primitive"), "abc"), sw);
+ Assert.AreEqual ("\"primitive\".abc", code, "#06");
+ }
+ }
+
+ [Test]
+ public void DelegateInvokeTest ()
+ {
+ StringBuilder sb;
+ string code;
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeDelegateInvokeExpression (null, new CodePrimitiveExpression ("abc")), sw);
+ Assert.AreEqual ("RaiseEvent (\"abc\")", code, "#02");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeDelegateInvokeExpression (new CodeThisReferenceExpression (), new CodePrimitiveExpression ("abc")), sw);
+ Assert.AreEqual ("RaiseEvent Me(\"abc\")", code, "#04");
+ }
+
+ sb = new StringBuilder ();
+ using (StringWriter sw = new StringWriter (sb)) {
+ code = Generate (new CodeDelegateInvokeExpression (new CodePrimitiveExpression ("primitive"), new CodePrimitiveExpression ("abc")), sw);
+ Assert.AreEqual ("RaiseEvent \"primitive\"(\"abc\")", code, "#06");
+ }
+ }
}
}