From aeb8ffce466fd7925328707b7a1e662433769e3d Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 22 Mar 2026 10:24:05 +0000 Subject: Serialize to and from bytes --- .../compiler/sources/SourceSerializationTests.java | 14 +++++++------- .../sources/protobuf/SourceToProtobufTests.java | 20 +++++++++++++++----- 2 files changed, 22 insertions(+), 12 deletions(-) (limited to 'src/test/java/org') 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 { - private final BiFunction, TSerializedSource> serialize; - private final BiFunction, Source> deserialize; +public abstract class SourceSerializationTests { + private final BiFunction, byte[]> serialize; + private final BiFunction, Source> deserialize; public SourceSerializationTests( - BiFunction, TSerializedSource> serialize, - BiFunction, Source> deserialize + BiFunction, byte[]> serialize, + BiFunction, Source> deserialize ) { this.serialize = serialize; this.deserialize = deserialize; } - private TSerializedSource serializeSource( + private byte[] serializeSource( Source source, Optional parentSource ) { @@ -31,7 +31,7 @@ public abstract class SourceSerializationTests { } private Source deserializeSource( - TSerializedSource serializedSource, + byte[] serializedSource, Optional 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 { +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); + } + } ); } } -- cgit v1.2.3