|
@@ -20,9 +20,17 @@ package org.elasticsearch.cluster.metadata;
|
|
|
|
|
|
import org.elasticsearch.Version;
|
|
|
import org.elasticsearch.common.bytes.BytesArray;
|
|
|
+import org.elasticsearch.common.bytes.BytesReference;
|
|
|
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
|
|
import org.elasticsearch.common.io.stream.StreamInput;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
+import org.elasticsearch.common.xcontent.NamedXContentRegistry;
|
|
|
+import org.elasticsearch.common.xcontent.ToXContent;
|
|
|
+import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
+import org.elasticsearch.common.xcontent.XContentHelper;
|
|
|
+import org.elasticsearch.common.xcontent.XContentParser;
|
|
|
+import org.elasticsearch.common.xcontent.XContentType;
|
|
|
+import org.elasticsearch.common.xcontent.json.JsonXContent;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
|
|
|
import java.io.IOException;
|
|
@@ -30,7 +38,9 @@ import java.util.Arrays;
|
|
|
import java.util.Base64;
|
|
|
import java.util.Collections;
|
|
|
|
|
|
+import static java.util.Collections.singletonMap;
|
|
|
import static org.elasticsearch.cluster.metadata.AliasMetaData.newAliasMetaDataBuilder;
|
|
|
+import static org.hamcrest.CoreMatchers.equalTo;
|
|
|
|
|
|
public class IndexTemplateMetaDataTests extends ESTestCase {
|
|
|
|
|
@@ -78,4 +88,36 @@ public class IndexTemplateMetaDataTests extends ESTestCase {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void testIndexTemplateMetaDataXContentRoundTrip() throws Exception {
|
|
|
+ ToXContent.Params params = new ToXContent.MapParams(singletonMap("reduce_mappings", "true"));
|
|
|
+
|
|
|
+ String template = "{\"index_patterns\" : [ \".test-*\" ],\"order\" : 1000," +
|
|
|
+ "\"settings\" : {\"number_of_shards\" : 1,\"number_of_replicas\" : 0}," +
|
|
|
+ "\"mappings\" : {\"doc\" :" +
|
|
|
+ "{\"properties\":{\"" +
|
|
|
+ randomAlphaOfLength(10) + "\":{\"type\":\"text\"},\"" +
|
|
|
+ randomAlphaOfLength(10) + "\":{\"type\":\"keyword\"}}" +
|
|
|
+ "}}}";
|
|
|
+
|
|
|
+ BytesReference templateBytes = new BytesArray(template);
|
|
|
+ final IndexTemplateMetaData indexTemplateMetaData;
|
|
|
+ try (XContentParser parser = XContentHelper.createParser(NamedXContentRegistry.EMPTY, templateBytes, XContentType.JSON)) {
|
|
|
+ indexTemplateMetaData = IndexTemplateMetaData.Builder.fromXContent(parser, "test");
|
|
|
+ }
|
|
|
+
|
|
|
+ final BytesReference templateBytesRoundTrip;
|
|
|
+ try (XContentBuilder builder = XContentBuilder.builder(JsonXContent.jsonXContent)) {
|
|
|
+ builder.startObject();
|
|
|
+ IndexTemplateMetaData.Builder.toXContent(indexTemplateMetaData, builder, params);
|
|
|
+ builder.endObject();
|
|
|
+ templateBytesRoundTrip = builder.bytes();
|
|
|
+ }
|
|
|
+
|
|
|
+ final IndexTemplateMetaData indexTemplateMetaDataRoundTrip;
|
|
|
+ try (XContentParser parser = XContentHelper.createParser(NamedXContentRegistry.EMPTY, templateBytesRoundTrip, XContentType.JSON)) {
|
|
|
+ indexTemplateMetaDataRoundTrip = IndexTemplateMetaData.Builder.fromXContent(parser, "test");
|
|
|
+ }
|
|
|
+ assertThat(indexTemplateMetaData, equalTo(indexTemplateMetaDataRoundTrip));
|
|
|
+ }
|
|
|
+
|
|
|
}
|