summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java17
-rw-r--r--examples/10-transient-0/src/data.hob13
2 files changed, 30 insertions, 0 deletions
diff --git a/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java
index 7d6f7de..e28e926 100644
--- a/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java
+++ b/examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java
@@ -19,6 +19,8 @@ import org.zwobble.example.types.data.StructWithInt64;
import org.zwobble.example.types.data.StructWithList;
import org.zwobble.example.types.data.StructWithOption;
import org.zwobble.example.types.data.StructWithString;
+import org.zwobble.example.types.data.VariantOne;
+import org.zwobble.example.types.data.VariantTwo;
public class Transient0Tests {
@Test
@@ -143,6 +145,21 @@ public class Transient0Tests {
);
}
+ @Test
+ public void sumWithVariants() throws IOException {
+ assertRoundTripEncoding(
+ new VariantOne(10),
+ HobgoblinTransient0Data::encodeSumWithVariants,
+ HobgoblinTransient0Data::decodeSumWithVariants
+ );
+
+ assertRoundTripEncoding(
+ new VariantTwo(25),
+ HobgoblinTransient0Data::encodeSumWithVariants,
+ HobgoblinTransient0Data::decodeSumWithVariants
+ );
+ }
+
private <T> void assertRoundTripEncoding(
T value,
Encoder<T> encoder,
diff --git a/examples/10-transient-0/src/data.hob b/examples/10-transient-0/src/data.hob
index f6fa20e..e1d7290 100644
--- a/examples/10-transient-0/src/data.hob
+++ b/examples/10-transient-0/src/data.hob
@@ -43,3 +43,16 @@ enum EnumWithVariants {
variant one;
variant two;
}
+
+sum SumWithVariants {
+ variant VariantOne;
+ variant VariantTwo;
+}
+
+struct VariantOne {
+ field a: Int32;
+}
+
+struct VariantTwo {
+ field a: Int64;
+}