aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/protobuf/PatioToProtobufTests.java101
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));
+ }
+}