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/shid/ShidSerializerTests.java26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java b/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java
index 6018fa88..70218cc3 100644
--- a/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/shid/ShidSerializerTests.java
@@ -1,10 +1,7 @@
package org.shedlang.compiler.shid;
import org.junit.jupiter.api.Test;
-import org.shedlang.compiler.shid.instructions.Shid;
-import org.shedlang.compiler.shid.instructions.ShidDefineFunction;
-import org.shedlang.compiler.shid.instructions.ShidInstruction;
-import org.shedlang.compiler.shid.instructions.ShidVariable;
+import org.shedlang.compiler.shid.instructions.*;
import org.shedlang.compiler.types.Effects;
import org.shedlang.compiler.types.NamespaceName;
import org.shedlang.compiler.types.Types;
@@ -46,6 +43,27 @@ public class ShidSerializerTests {
}
@Test
+ public void canSerializeDeclareNativeFunction() {
+ var instruction = ShidDeclareNativeFunction.builder()
+ .withName("f")
+ .addPositionalParam("p1")
+ .addPositionalParam("p2")
+ .addNamedParam("n1")
+ .addNamedParam("n2")
+ .build();
+
+ var string = serialize(instruction);
+
+ assertThat(string, equalTo("""
+ (
+ declare-native-function
+ name="f"
+ positional-params=("p1" "p2")
+ named-params=("n1" "n2")
+ )"""));
+ }
+
+ @Test
public void canSerializeDefineEffect() {
var instruction = Shid.defineEffect(
Effects.userDefined(NamespaceName.of("Example", "Project"), "State")