aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/zwobble')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java3
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java11
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java4
3 files changed, 16 insertions, 2 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 ba69eb4..c0b9899 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
@@ -309,7 +309,8 @@ public class CsharpSerializerTests {
list(returns(literal(1))),
list(
exceptionHandler(varX, list(returns(reference(varX)))),
- exceptionHandler(varY, list(returns(reference(varY)))))));
+ exceptionHandler(varY, list(returns(reference(varY))))),
+ list()));
assertEquals("try {\n return 1;\n} catch (X x) {\n return x;\n} catch (Y y) {\n return y;\n}\n", output);
}
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
index 3aafb56..8225baa 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
@@ -192,7 +192,7 @@ public class JavaReaderTests {
}
@Test
- public void canReadTryStatements() {
+ public void canReadTryStatementsWithCatchClauses() {
assertThat(
readStatement("int", "try { return 1; } catch (Exception exception) { return 2; }"),
isTryStatement(
@@ -200,6 +200,15 @@ public class JavaReaderTests {
hasExceptionHandlers(
isExceptionHandler(ScalarType.of("java.lang.Exception"), "exception", list(returns(literal(2)))))));
}
+
+ @Test
+ public void canReadTryStatementsWithFinallyClauses() {
+ assertThat(
+ readStatement("int", "try { return 1; } finally { return 2; }"),
+ isTryStatement(
+ hasTryBody(list(returns(literal(1)))),
+ hasFinally(returns(literal(2)))));
+ }
@Test
public void canDeclareConstructor() {
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java
index ba356f8..5a39e82 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/NodeMatchers.java
@@ -77,4 +77,8 @@ public class NodeMatchers {
hasFeature("exception name", ExceptionHandlerNode::getExceptionName, equalTo(name)),
hasFeature("body", ExceptionHandlerNode::getBody, equalTo(body)));
}
+
+ public static Matcher<TryNode> hasFinally(StatementNode... statements) {
+ return hasFeature("finally clause", TryNode::getFinallyBody, contains(statements));
+ }
}