aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-03-22 10:24:05 +0000
committerMichael Williamson <mike@zwobble.org>2026-03-22 10:24:05 +0000
commitaeb8ffce466fd7925328707b7a1e662433769e3d (patch)
tree56e3a0fa659b4355db08fa470df94e35f2b1cfd1 /src/test/java/org
parentf68c1f5fed1a98c51e8d6924ed5b2bc6350118ee (diff)
Serialize to and from bytes
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/shedlang/compiler/sources/SourceSerializationTests.java14
-rw-r--r--src/test/java/org/shedlang/compiler/sources/protobuf/SourceToProtobufTests.java20
2 files changed, 22 insertions, 12 deletions
diff --git a/src/test/java/org/shedlang/compiler/sources/SourceSerializationTests.java b/src/test/java/org/shedlang/compiler/sources/SourceSerializationTests.java
index 7e417d2d..cf54479a 100644
--- a/src/test/java/org/shedlang/compiler/sources/SourceSerializationTests.java
+++ b/src/test/java/org/shedlang/compiler/sources/SourceSerializationTests.java
@@ -11,19 +11,19 @@ import java.util.function.BiFunction;
import static org.zwobble.precisely.AssertThat.assertThat;
import static org.zwobble.precisely.Matchers.equalTo;
-public abstract class SourceSerializationTests<TSerializedSource> {
- private final BiFunction<Source, Optional<Source>, TSerializedSource> serialize;
- private final BiFunction<TSerializedSource, Optional<Source>, Source> deserialize;
+public abstract class SourceSerializationTests {
+ private final BiFunction<Source, Optional<Source>, byte[]> serialize;
+ private final BiFunction<byte[], Optional<Source>, Source> deserialize;
public SourceSerializationTests(
- BiFunction<Source, Optional<Source>, TSerializedSource> serialize,
- BiFunction<TSerializedSource, Optional<Source>, Source> deserialize
+ BiFunction<Source, Optional<Source>, byte[]> serialize,
+ BiFunction<byte[], Optional<Source>, Source> deserialize
) {
this.serialize = serialize;
this.deserialize = deserialize;
}
- private TSerializedSource serializeSource(
+ private byte[] serializeSource(
Source source,
Optional<Source> parentSource
) {
@@ -31,7 +31,7 @@ public abstract class SourceSerializationTests<TSerializedSource> {
}
private Source deserializeSource(
- TSerializedSource serializedSource,
+ byte[] serializedSource,
Optional<Source> parentSource
) {
return this.deserialize.apply(serializedSource, parentSource);
diff --git a/src/test/java/org/shedlang/compiler/sources/protobuf/SourceToProtobufTests.java b/src/test/java/org/shedlang/compiler/sources/protobuf/SourceToProtobufTests.java
index 9aba0b99..373dcc9a 100644
--- a/src/test/java/org/shedlang/compiler/sources/protobuf/SourceToProtobufTests.java
+++ b/src/test/java/org/shedlang/compiler/sources/protobuf/SourceToProtobufTests.java
@@ -1,14 +1,24 @@
package org.shedlang.compiler.sources.protobuf;
+import com.google.protobuf.InvalidProtocolBufferException;
import org.shedlang.compiler.sources.SourceSerializationTests;
-public class SourceToProtobufTests extends SourceSerializationTests<SourcesProtobuf.Source> {
+public class SourceToProtobufTests extends SourceSerializationTests {
public SourceToProtobufTests() {
super(
- (source, parentSource) ->
- SourceToProtobuf.serializeSource(source, parentSource),
- (serializedSource, parentSource) ->
- SourceToProtobuf.deserializeSource(serializedSource, parentSource)
+ (source, parentSource) -> {
+ var sourceProtobuf = SourceToProtobuf.serializeSource(source, parentSource);
+ return sourceProtobuf.toByteArray();
+ },
+
+ (serializedSource, parentSource) -> {
+ try {
+ var sourceProtobuf = SourcesProtobuf.Source.parseFrom(serializedSource);
+ return SourceToProtobuf.deserializeSource(sourceProtobuf, parentSource);
+ } catch (InvalidProtocolBufferException exception) {
+ throw new RuntimeException(exception);
+ }
+ }
);
}
}