Browse Source

[DOCS] fix put_mapping snippet (#28814)

Add a java snippet to be run in an integration test
in order to guarantee that the snippet is correct

Closes #28778
olcbean 7 years ago
parent
commit
472acf7833

+ 2 - 12
docs/java-api/admin/indices/put-mapping.asciidoc

@@ -3,19 +3,9 @@
 
 The PUT mapping API allows you to add a new type while creating an index:
 
-[source,java]
+["source","java",subs="attributes,callouts,macros"]
 --------------------------------------------------
-client.admin().indices().prepareCreate("twitter")   <1>
-        .addMapping("tweet", "{\n" +                <2>
-                "    \"tweet\": {\n" +
-                "      \"properties\": {\n" +
-                "        \"message\": {\n" +
-                "          \"type\": \"text\"\n" +
-                "        }\n" +
-                "      }\n" +
-                "    }\n" +
-                "  }")
-        .get();
+include-tagged::{client-tests}/IndicesDocumentationIT.java[index-with-mapping]
 --------------------------------------------------
 <1> <<java-admin-indices-create-index,Creates an index>> called `twitter`
 <2> It also adds a `tweet` mapping type.

+ 2 - 0
docs/java-api/index.asciidoc

@@ -186,6 +186,8 @@ it to the `transformers`:
 </transformer>
 --------------------------------------------------
 
+:client-tests: {docdir}/../../server/src/test/java/org/elasticsearch/client/documentation
+
 include::client.asciidoc[]
 
 include::docs.asciidoc[]

+ 44 - 0
server/src/test/java/org/elasticsearch/client/documentation/IndicesDocumentationIT.java

@@ -0,0 +1,44 @@
+/*
+ * Licensed to Elasticsearch under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.elasticsearch.client.documentation;
+
+import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
+import org.elasticsearch.client.Client;
+import org.elasticsearch.test.ESIntegTestCase;
+
+public class IndicesDocumentationIT extends ESIntegTestCase {
+
+    public void createMappings() {
+        Client client = client();
+
+        // tag::index-with-mapping
+        client.admin().indices().prepareCreate("twitter")   // <1>
+                .addMapping("\"tweet\": {\n" +              // <2>
+                        "  \"properties\": {\n" +
+                        "    \"message\": {\n" +
+                        "      \"type\": \"text\"\n" +
+                        "    }\n" +
+                        "  }\n" +
+                        "}")
+                .get();
+        // end::index-with-mapping
+    }
+
+}