diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/10-transient-0/output/java-junit/src/test/java/org/zwobble/example/Transient0Tests.java | 17 | ||||
| -rw-r--r-- | examples/10-transient-0/src/data.hob | 13 |
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; +} |
