This is an automated email from the ASF dual-hosted git repository. shunping pushed a commit to branch fadvice in repository https://gitbox.apache.org/repos/asf/beam.git
commit 19e66b9f9edbbe0b6afe8e31e41eebc7ea34f03b Author: Shunping Huang <[email protected]> AuthorDate: Wed Jul 22 16:16:03 2026 -0400 Add a unit test --- .../sdk/extensions/gcp/options/GcsOptionsTest.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java index c499290b851..de460ca0986 100644 --- a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java +++ b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java @@ -18,11 +18,16 @@ package org.apache.beam.sdk.extensions.gcp.options; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThrows; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.cloud.hadoop.gcsio.GoogleCloudStorageReadOptions; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import org.apache.beam.sdk.options.PipelineOptions; import org.apache.beam.sdk.options.PipelineOptionsFactory; import org.junit.Test; import org.junit.runner.RunWith; @@ -75,4 +80,30 @@ public class GcsOptionsTest { IllegalArgumentException.class, () -> PipelineOptionsFactory.fromArgs(TOO_MANY_ENTRIES_WITH_JOB).as(GcsOptions.class)); } + + @Test + public void testGoogleCloudStorageReadOptionsSerialization() throws Exception { + GcsOptions options = PipelineOptionsFactory.as(GcsOptions.class); + GoogleCloudStorageReadOptions readOptions = + GoogleCloudStorageReadOptions.builder() + .setFadvise(GoogleCloudStorageReadOptions.Fadvise.SEQUENTIAL) + .setFastFailOnNotFoundEnabled(false) + .setMinRangeRequestSize(12345L) + .build(); + options.setGoogleCloudStorageReadOptions(readOptions); + + ObjectMapper mapper = new ObjectMapper(); + String serialized = mapper.writeValueAsString(options); + GcsOptions deserialized = + mapper.readValue(serialized, PipelineOptions.class).as(GcsOptions.class); + + GoogleCloudStorageReadOptions deserializedReadOptions = + deserialized.getGoogleCloudStorageReadOptions(); + + assertNotNull(deserializedReadOptions); + assertEquals( + GoogleCloudStorageReadOptions.Fadvise.SEQUENTIAL, deserializedReadOptions.getFadvise()); + assertFalse(deserializedReadOptions.isFastFailOnNotFoundEnabled()); + assertEquals(12345L, deserializedReadOptions.getMinRangeRequestSize()); + } }
