diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-31 19:17:43 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-31 19:17:43 +0000 |
| commit | bfe06980f1e0e5f3597b710f458819eedc190954 (patch) | |
| tree | ff7ee348f9ccc6853597ec5d88b4f38063e86ae7 /src/test/java/org/zwobble/couscous/tests/backends | |
| parent | 82e65d3e011beb475e15c70b9bf911fcfc52a080 (diff) | |
Add CsharpCompilerMethodTests
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/backends')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java | 48 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java | 13 |
2 files changed, 60 insertions, 1 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java new file mode 100644 index 0000000..34bb2b1 --- /dev/null +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java @@ -0,0 +1,48 @@ +package org.zwobble.couscous.tests.backends.csharp; + +import org.junit.Ignore; +import org.junit.Test; +import org.zwobble.couscous.tests.BackendMethodTests; +import org.zwobble.couscous.tests.MethodRunner; + +public class CsharpCompilerMethodTests extends BackendMethodTests { + @Ignore + @Test + public void methodWithNoStatementsReturnsUnit() { + } + + @Ignore + @Test + public void canDeclareVariable() { + } + + @Ignore + @Test + public void canDeclareVariableAndThenAssignValues() { + } + + @Ignore + @Test + public void whenConditionIsTrueIfStatementExecutesTrueBranch() { + } + + @Ignore + @Test + public void whenConditionIsFalseIfStatementExecutesTrueBranch() { + } + + @Ignore + @Test + public void whileLoopIsExecutedWhileConditionIsTrue() { + } + + @Ignore + @Test + public void returnWillExitWhileLoopEarly() { + } + + @Override + protected MethodRunner buildMethodRunner() { + return new CsharpMethodRunner(); + } +} diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java index 104308b..5d9c27d 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpMethodRunner.java @@ -5,13 +5,16 @@ import com.google.common.collect.Iterators; import org.hamcrest.Matchers; import org.zwobble.couscous.Backend; import org.zwobble.couscous.ast.ClassNode; +import org.zwobble.couscous.ast.LiteralNode; import org.zwobble.couscous.ast.MethodSignature; import org.zwobble.couscous.ast.TypeName; import org.zwobble.couscous.backends.csharp.CsharpBackend; +import org.zwobble.couscous.backends.csharp.CsharpSerializer; import org.zwobble.couscous.backends.python.PythonCodeGenerator; import org.zwobble.couscous.tests.MethodRunner; import org.zwobble.couscous.tests.backends.Processes; import org.zwobble.couscous.util.ExtraLists; +import org.zwobble.couscous.values.ObjectValues; import org.zwobble.couscous.values.PrimitiveValue; import org.zwobble.couscous.values.StringValue; @@ -22,6 +25,7 @@ import java.util.List; import static java.lang.Integer.parseInt; import static org.hamcrest.MatcherAssert.assertThat; +import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall; import static org.zwobble.couscous.tests.util.ExtraFiles.deleteRecursively; import static org.zwobble.couscous.util.ExtraLists.eagerMap; import static org.zwobble.couscous.util.ExtraLists.list; @@ -57,10 +61,17 @@ public class CsharpMethodRunner implements MethodRunner { String csharpMethodName = PythonCodeGenerator.toName(new MethodSignature( methodName, eagerMap(arguments, argument -> argument.getType()))); + String value = CsharpSerializer.serialize( + staticMethodCall( + TypeName.of(NAMESPACE + "." + className.getQualifiedName()), + csharpMethodName, + eagerMap(arguments, LiteralNode::literal), + // TODO: pass in return type + ObjectValues.OBJECT)); String program = "public class MethodRunnerExample { " + " public static void Main() { " + - " var value = " + NAMESPACE + "." + className.getQualifiedName() + "." + csharpMethodName + "();" + + " var value = " + value + ";" + " System.Console.WriteLine(value.GetType());" + " System.Console.WriteLine(value);" + " }" + |
