diff options
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java b/src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java new file mode 100644 index 00000000..877d59cf --- /dev/null +++ b/src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java @@ -0,0 +1,101 @@ +package org.shedlang.compiler.patio.protobuf; + +import org.junit.jupiter.api.Test; +import org.shedlang.compiler.patio.types.PatioDataLayouts; + +import java.util.List; + +import static org.zwobble.precisely.AssertThat.assertThat; +import static org.zwobble.precisely.Matchers.equalTo; + +public class PatioToProtobufTests { + // == Data layouts == + + @Test + public void canSerializeDataLayoutArray() { + var layout = PatioDataLayouts.array(PatioDataLayouts.INT, 4); + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutBool() { + var layout = PatioDataLayouts.BOOL; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutByte() { + var layout = PatioDataLayouts.BYTE; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutDataPtr() { + var layout = PatioDataLayouts.DATA_PTR; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutFunctionPtr() { + var layout = PatioDataLayouts.FUNCTION_PTR; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutInt() { + var layout = PatioDataLayouts.INT; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutInt32() { + var layout = PatioDataLayouts.INT32; + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } + + @Test + public void canSerializeDataLayoutStruct() { + var layout = PatioDataLayouts.struct(List.of(PatioDataLayouts.INT, PatioDataLayouts.INT, PatioDataLayouts.BYTE)); + + var deserializedLayout = PatioToProtobuf.deserializeDataLayout( + PatioToProtobuf.serializeDataLayout(layout) + ); + + assertThat(deserializedLayout, equalTo(layout)); + } +} |
