diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-03-22 10:24:05 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-03-22 10:24:05 +0000 |
| commit | aeb8ffce466fd7925328707b7a1e662433769e3d (patch) | |
| tree | 56e3a0fa659b4355db08fa470df94e35f2b1cfd1 /src/test/java/org/shedlang | |
| parent | f68c1f5fed1a98c51e8d6924ed5b2bc6350118ee (diff) | |
Serialize to and from bytes
Diffstat (limited to 'src/test/java/org/shedlang')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/sources/SourceSerializationTests.java | 14 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/sources/protobuf/SourceToProtobufTests.java | 20 |
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); + } + } ); } } |
