summaryrefslogtreecommitdiff
path: root/core/src/test
diff options
context:
space:
mode:
authorSimon Willnauer <simonw@apache.org>2017-06-25 12:25:41 +0200
committerGitHub <noreply@github.com>2017-06-25 12:25:41 +0200
commit4e4a104f4aaed2dc5166a9b2b1b61fc48945b823 (patch)
tree712f7ce78d56999a9925429385b56b6a3d3ce6f6 /core/src/test
parent43c190339a7dccf6eaa6c2bbe52bb5bfd3339605 (diff)
Remove remaining `index.mapper.single_type` setting usage from tests (#25388)
This change removes the remaining explicitly specified `index.mapper.single_type` settings from tests in order to allow the removal of the setting. This is the already approved part of #25375 broken out to simplfiy reviews on
Diffstat (limited to 'core/src/test')
-rw-r--r--core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java2
-rw-r--r--core/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java75
-rw-r--r--core/src/test/java/org/elasticsearch/index/mapper/NestedObjectMapperTests.java35
-rw-r--r--core/src/test/java/org/elasticsearch/index/mapper/ParentFieldMapperTests.java11
-rw-r--r--core/src/test/java/org/elasticsearch/index/mapper/UpdateMappingTests.java4
5 files changed, 107 insertions, 20 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java
index 99aa081608..b9e3a0813b 100644
--- a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java
+++ b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java
@@ -134,7 +134,7 @@ public abstract class AbstractFieldDataTestCase extends ESSingleNodeTestCase {
@Before
public void setup() throws Exception {
- indexService = createIndex("test", Settings.builder().put("mapping.single_type", false).build());
+ indexService = createIndex("test", Settings.builder().build());
mapperService = indexService.mapperService();
indicesFieldDataCache = getInstanceFromNode(IndicesService.class).getIndicesFieldDataCache();
ifdService = indexService.fieldData();
diff --git a/core/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java b/core/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java
index daf3d99ad5..06c31f4dd1 100644
--- a/core/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java
+++ b/core/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java
@@ -36,9 +36,13 @@ import org.elasticsearch.index.mapper.BooleanFieldMapper.BooleanFieldType;
import org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType;
import org.elasticsearch.index.mapper.MapperService.MergeReason;
import org.elasticsearch.index.mapper.NumberFieldMapper.NumberFieldType;
+import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.test.ESSingleNodeTestCase;
+import org.elasticsearch.test.InternalSettingsPlugin;
import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
import static java.util.Collections.emptyMap;
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
@@ -49,6 +53,11 @@ import static org.hamcrest.Matchers.nullValue;
public class DynamicMappingTests extends ESSingleNodeTestCase {
+ @Override
+ protected Collection<Class<? extends Plugin>> getPlugins() {
+ return Collections.singleton(InternalSettingsPlugin.class);
+ }
+
public void testDynamicTrue() throws IOException {
String mapping = jsonBuilder().startObject().startObject("type")
.field("dynamic", "true")
@@ -183,9 +192,7 @@ public class DynamicMappingTests extends ESSingleNodeTestCase {
XContentBuilder mapping = jsonBuilder().startObject().startObject("_default_")
.field("dynamic", "strict")
.endObject().endObject();
-
- IndexService indexService = createIndex("test", Settings.EMPTY, "_default_", mapping);
-
+ createIndex("test", Settings.EMPTY, "_default_", mapping);
try {
client().prepareIndex().setIndex("test").setType("type").setSource(jsonBuilder().startObject().field("test", "test").endObject()).get();
fail();
@@ -525,9 +532,9 @@ public class DynamicMappingTests extends ESSingleNodeTestCase {
}
public void testMixTemplateMultiFieldAndMappingReuse() throws Exception {
- IndexService indexService = createIndex("test", Settings.builder().put("mapping.single_type", false).build());
+ IndexService indexService = createIndex("test");
XContentBuilder mappings1 = jsonBuilder().startObject()
- .startObject("type1")
+ .startObject("doc")
.startArray("dynamic_templates")
.startObject()
.startObject("template1")
@@ -544,20 +551,60 @@ public class DynamicMappingTests extends ESSingleNodeTestCase {
.endObject()
.endArray()
.endObject().endObject();
+ indexService.mapperService().merge("doc", new CompressedXContent(mappings1.bytes()),
+ MapperService.MergeReason.MAPPING_UPDATE, false);
+
+ XContentBuilder json = XContentFactory.jsonBuilder().startObject()
+ .field("field", "foo")
+ .endObject();
+ SourceToParse source = SourceToParse.source("test", "doc", "1", json.bytes(), json.contentType());
+ DocumentMapper mapper = indexService.mapperService().documentMapper("doc");
+ assertNull(mapper.mappers().getMapper("field.raw"));
+ ParsedDocument parsed = mapper.parse(source);
+ assertNotNull(parsed.dynamicMappingsUpdate());
+
+ indexService.mapperService().merge("doc", new CompressedXContent(parsed.dynamicMappingsUpdate().toString()),
+ MapperService.MergeReason.MAPPING_UPDATE, false);
+ mapper = indexService.mapperService().documentMapper("doc");
+ assertNotNull(mapper.mappers().getMapper("field.raw"));
+ parsed = mapper.parse(source);
+ assertNull(parsed.dynamicMappingsUpdate());
+ }
+
+ public void testMixTemplateMultiFieldMultiTypeAndMappingReuse() throws Exception {
+ IndexService indexService = createIndex("test", Settings.builder().put("index.version.created", Version.V_5_6_0).build());
+ XContentBuilder mappings1 = jsonBuilder().startObject()
+ .startObject("type1")
+ .startArray("dynamic_templates")
+ .startObject()
+ .startObject("template1")
+ .field("match_mapping_type", "string")
+ .startObject("mapping")
+ .field("type", "text")
+ .startObject("fields")
+ .startObject("raw")
+ .field("type", "keyword")
+ .endObject()
+ .endObject()
+ .endObject()
+ .endObject()
+ .endObject()
+ .endArray()
+ .endObject().endObject();
indexService.mapperService().merge("type1", new CompressedXContent(mappings1.bytes()), MapperService.MergeReason.MAPPING_UPDATE, false);
XContentBuilder mappings2 = jsonBuilder().startObject()
- .startObject("type2")
- .startObject("properties")
- .startObject("field")
- .field("type", "text")
- .endObject()
- .endObject()
- .endObject().endObject();
+ .startObject("type2")
+ .startObject("properties")
+ .startObject("field")
+ .field("type", "text")
+ .endObject()
+ .endObject()
+ .endObject().endObject();
indexService.mapperService().merge("type2", new CompressedXContent(mappings2.bytes()), MapperService.MergeReason.MAPPING_UPDATE, false);
XContentBuilder json = XContentFactory.jsonBuilder().startObject()
- .field("field", "foo")
- .endObject();
+ .field("field", "foo")
+ .endObject();
SourceToParse source = SourceToParse.source("test", "type1", "1", json.bytes(), json.contentType());
DocumentMapper mapper = indexService.mapperService().documentMapper("type1");
assertNull(mapper.mappers().getMapper("field.raw"));
diff --git a/core/src/test/java/org/elasticsearch/index/mapper/NestedObjectMapperTests.java b/core/src/test/java/org/elasticsearch/index/mapper/NestedObjectMapperTests.java
index f4a8ce11c5..157033d414 100644
--- a/core/src/test/java/org/elasticsearch/index/mapper/NestedObjectMapperTests.java
+++ b/core/src/test/java/org/elasticsearch/index/mapper/NestedObjectMapperTests.java
@@ -19,16 +19,21 @@
package org.elasticsearch.index.mapper;
+import org.elasticsearch.Version;
import org.elasticsearch.common.compress.CompressedXContent;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.mapper.MapperService.MergeReason;
import org.elasticsearch.index.mapper.ObjectMapper.Dynamic;
+import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.test.ESSingleNodeTestCase;
+import org.elasticsearch.test.InternalSettingsPlugin;
import java.io.IOException;
import java.io.UncheckedIOException;
+import java.util.Collection;
+import java.util.Collections;
import java.util.function.Function;
import static org.hamcrest.Matchers.containsString;
@@ -36,6 +41,12 @@ import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.nullValue;
public class NestedObjectMapperTests extends ESSingleNodeTestCase {
+
+ @Override
+ protected Collection<Class<? extends Plugin>> getPlugins() {
+ return Collections.singleton(InternalSettingsPlugin.class);
+ }
+
public void testEmptyNested() throws Exception {
String mapping = XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties")
.startObject("nested1").field("type", "nested").endObject()
@@ -382,16 +393,34 @@ public class NestedObjectMapperTests extends ESSingleNodeTestCase {
.mapperService().merge("type", new CompressedXContent(mapping.apply("type")), MergeReason.MAPPING_UPDATE, false));
assertThat(e.getMessage(), containsString("Limit of nested fields [1] in index [test3] has been exceeded"));
+ // do not check nested fields limit if mapping is not updated
+ createIndex("test4", Settings.builder().put(MapperService.INDEX_MAPPING_NESTED_FIELDS_LIMIT_SETTING.getKey(), 0).build())
+ .mapperService().merge("type", new CompressedXContent(mapping.apply("type")), MergeReason.MAPPING_RECOVERY, false);
+ }
+
+ public void testLimitOfNestedFieldsWithMultiTypePerIndex() throws Exception {
+ Function<String, String> mapping = type -> {
+ try {
+ return XContentFactory.jsonBuilder().startObject().startObject(type).startObject("properties")
+ .startObject("nested1").field("type", "nested").startObject("properties")
+ .startObject("nested2").field("type", "nested")
+ .endObject().endObject().endObject()
+ .endObject().endObject().endObject().string();
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ };
+
MapperService mapperService = createIndex("test4", Settings.builder()
- .put("mapping.single_type", false)
- .put(MapperService.INDEX_MAPPING_NESTED_FIELDS_LIMIT_SETTING.getKey(), 2).build()).mapperService();
+ .put("index.version.created", Version.V_5_6_0)
+ .put(MapperService.INDEX_MAPPING_NESTED_FIELDS_LIMIT_SETTING.getKey(), 2).build()).mapperService();
mapperService.merge("type1", new CompressedXContent(mapping.apply("type1")), MergeReason.MAPPING_UPDATE, false);
// merging same fields, but different type is ok
mapperService.merge("type2", new CompressedXContent(mapping.apply("type2")), MergeReason.MAPPING_UPDATE, false);
// adding new fields from different type is not ok
String mapping2 = XContentFactory.jsonBuilder().startObject().startObject("type3").startObject("properties").startObject("nested3")
.field("type", "nested").startObject("properties").endObject().endObject().endObject().endObject().endObject().string();
- e = expectThrows(IllegalArgumentException.class, () ->
+ IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () ->
mapperService.merge("type3", new CompressedXContent(mapping2), MergeReason.MAPPING_UPDATE, false));
assertThat(e.getMessage(), containsString("Limit of nested fields [2] in index [test4] has been exceeded"));
diff --git a/core/src/test/java/org/elasticsearch/index/mapper/ParentFieldMapperTests.java b/core/src/test/java/org/elasticsearch/index/mapper/ParentFieldMapperTests.java
index 7ef1b751ee..935562a2bc 100644
--- a/core/src/test/java/org/elasticsearch/index/mapper/ParentFieldMapperTests.java
+++ b/core/src/test/java/org/elasticsearch/index/mapper/ParentFieldMapperTests.java
@@ -20,6 +20,7 @@ package org.elasticsearch.index.mapper;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexableField;
+import org.elasticsearch.Version;
import org.elasticsearch.common.bytes.BytesArray;
import org.elasticsearch.common.compress.CompressedXContent;
import org.elasticsearch.common.settings.Settings;
@@ -35,9 +36,12 @@ import org.elasticsearch.index.analysis.NamedAnalyzer;
import org.elasticsearch.index.mapper.MapperService.MergeReason;
import org.elasticsearch.index.similarity.SimilarityService;
import org.elasticsearch.indices.IndicesModule;
+import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.test.ESSingleNodeTestCase;
import org.elasticsearch.test.IndexSettingsModule;
+import org.elasticsearch.test.InternalSettingsPlugin;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -47,6 +51,11 @@ import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
public class ParentFieldMapperTests extends ESSingleNodeTestCase {
+ @Override
+ protected Collection<Class<? extends Plugin>> getPlugins() {
+ return Collections.singleton(InternalSettingsPlugin.class);
+ }
+
public void testParentSetInDocNotAllowed() throws Exception {
String mapping = XContentFactory.jsonBuilder().startObject().startObject("type")
.endObject().endObject().string();
@@ -67,7 +76,7 @@ public class ParentFieldMapperTests extends ESSingleNodeTestCase {
String childMapping = XContentFactory.jsonBuilder().startObject().startObject("child_type")
.startObject("_parent").field("type", "parent_type").endObject()
.endObject().endObject().string();
- IndexService indexService = createIndex("test", Settings.builder().put("mapping.single_type", false).build());
+ IndexService indexService = createIndex("test", Settings.builder().put("index.version.created", Version.V_5_6_0).build());
indexService.mapperService().merge("parent_type", new CompressedXContent(parentMapping), MergeReason.MAPPING_UPDATE, false);
indexService.mapperService().merge("child_type", new CompressedXContent(childMapping), MergeReason.MAPPING_UPDATE, false);
diff --git a/core/src/test/java/org/elasticsearch/index/mapper/UpdateMappingTests.java b/core/src/test/java/org/elasticsearch/index/mapper/UpdateMappingTests.java
index 7c18d9cb1a..c6a1eae036 100644
--- a/core/src/test/java/org/elasticsearch/index/mapper/UpdateMappingTests.java
+++ b/core/src/test/java/org/elasticsearch/index/mapper/UpdateMappingTests.java
@@ -19,6 +19,7 @@
package org.elasticsearch.index.mapper;
+import org.elasticsearch.Version;
import org.elasticsearch.common.compress.CompressedXContent;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.XContentBuilder;
@@ -150,7 +151,8 @@ public class UpdateMappingTests extends ESSingleNodeTestCase {
.startObject("properties").startObject("foo").field("type", "long").endObject()
.endObject().endObject().endObject();
XContentBuilder mapping2 = XContentFactory.jsonBuilder().startObject().startObject("type2").endObject().endObject();
- MapperService mapperService = createIndex("test", Settings.builder().put("mapping.single_type", false).build()).mapperService();
+ MapperService mapperService = createIndex("test", Settings.builder().put("index.version.created",
+ Version.V_5_6_0).build()).mapperService();
mapperService.merge("type1", new CompressedXContent(mapping1.string()), MapperService.MergeReason.MAPPING_UPDATE, false);
mapperService.merge("type2", new CompressedXContent(mapping2.string()), MapperService.MergeReason.MAPPING_UPDATE, false);