aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-28 21:33:45 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-28 21:33:45 +0100
commit7a7512ba6e9e428e82efee057fa1aa3056bf231d (patch)
tree4d33a0a3aeb3b9cdcb38cdd5e76aa8b8318de4c2 /src/test/java/org/zwobble
parent5f852c33a8a57bd8fad58747b339961ac6c835ef (diff)
Parenthesize expressions in C# serializer
Diffstat (limited to 'src/test/java/org/zwobble')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
index 8d4246a..fda3980 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java
@@ -26,6 +26,8 @@ import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariabl
import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
import static org.zwobble.couscous.ast.MethodSignature.signature;
+import static org.zwobble.couscous.ast.Operations.integerAdd;
+import static org.zwobble.couscous.ast.Operations.integerMultiply;
import static org.zwobble.couscous.ast.Operations.not;
import static org.zwobble.couscous.ast.ReturnNode.returns;
import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional;
@@ -189,11 +191,17 @@ public class CsharpSerializerTests {
@Test
public void infixOperation() {
- String output = serialize(Operations.integerAdd(literal(1), literal(2)));
+ String output = serialize(integerAdd(literal(1), literal(2)));
assertEquals("1 + 2", output);
}
@Test
+ public void infixOperationIsBracketedWhenNecessary() {
+ assertEquals("1 + 2 * 3", serialize(integerAdd(literal(1), integerMultiply(literal(2), literal(3)))));
+ assertEquals("(1 + 2) * 3", serialize(integerMultiply(integerAdd(literal(1), literal(2)), literal(3))));
+ }
+
+ @Test
public void fieldAccessSeparatesReceiverAndNameWithDot() {
String output = serialize(fieldAccess(
reference(var(TestIds.ANY_ID, "x", ScalarType.of("X"))),