From ec7e527808e6b23e5d1934cce397889c06984d86 Mon Sep 17 00:00:00 2001 From: Mohit Godwani Date: Sun, 1 Sep 2024 21:38:16 +0530 Subject: [PATCH] Add test for serde of Feature.CONTEXT in GetIndexRequest Signed-off-by: Mohit Godwani --- .../indices/get/GetIndexRequestTests.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/server/src/test/java/org/opensearch/action/admin/indices/get/GetIndexRequestTests.java b/server/src/test/java/org/opensearch/action/admin/indices/get/GetIndexRequestTests.java index f0d3db71c27b7..cfa9c04f93167 100644 --- a/server/src/test/java/org/opensearch/action/admin/indices/get/GetIndexRequestTests.java +++ b/server/src/test/java/org/opensearch/action/admin/indices/get/GetIndexRequestTests.java @@ -8,9 +8,17 @@ package org.opensearch.action.admin.indices.get; +import org.opensearch.Version; import org.opensearch.action.support.master.info.ClusterInfoRequest; +import org.opensearch.common.io.stream.BytesStreamOutput; +import org.opensearch.common.util.set.Sets; +import org.opensearch.core.common.io.stream.BytesStreamInput; +import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.test.OpenSearchTestCase; +import java.io.IOException; +import java.util.Arrays; + import static org.hamcrest.Matchers.is; public class GetIndexRequestTests extends OpenSearchTestCase { @@ -18,4 +26,33 @@ public void testGetIndexRequestExtendsClusterInfoRequestOfDeprecatedClassPath() GetIndexRequest getIndexRequest = new GetIndexRequest().indices("test"); assertThat(getIndexRequest instanceof ClusterInfoRequest, is(true)); } + + public void testGetIndexRequestWriteableWithLatestNode() throws IOException { + // Write to 2.17 stream + try (BytesStreamOutput output = new BytesStreamOutput()) { + GetIndexRequest getIndexRequest = new GetIndexRequest().indices("test") + .addFeatures(GetIndexRequest.Feature.values()); + output.setVersion(Version.V_2_17_0); + getIndexRequest.writeTo(output); + try (StreamInput in = output.bytes().streamInput()) { + GetIndexRequest getIndexRequestRead = new GetIndexRequest(in); + assertArrayEquals(getIndexRequestRead.features(), getIndexRequest.features()); + } + } + } + + public void testGetIndexRequestWriteableWithOldNode() throws IOException { + // Write to 2.1 stream + try (BytesStreamOutput output = new BytesStreamOutput()) { + GetIndexRequest getIndexRequest = new GetIndexRequest().indices("test") + .addFeatures(GetIndexRequest.Feature.values()); + output.setVersion(Version.V_2_16_0); + getIndexRequest.writeTo(output); + try (StreamInput in = output.bytes().streamInput()) { + GetIndexRequest getIndexRequestRead = new GetIndexRequest(in); + assertTrue(Arrays.stream(getIndexRequestRead.features()).noneMatch(f -> f == GetIndexRequest.Feature.CONTEXT)); + assertEquals(3, getIndexRequestRead.features().length); + } + } + } }