From e1bc8cf50e7dba27106cb6c1f72a70f4fcfcbc3c Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Thu, 28 Mar 2019 10:37:16 +0100 Subject: [PATCH 1/2] Add unit test for MetaDataMappingService with typeless put mapping. This is currently only tested via REST tests. Closes #37450 --- .../metadata/MetaDataMappingServiceTests.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java index d7e9767d7a14d..14e8e100a2cbb 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexService; +import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.test.InternalSettingsPlugin; @@ -114,4 +115,22 @@ public void testMappingVersionUnchanged() throws Exception { assertThat(result.resultingState.metaData().index("test").getMappingVersion(), equalTo(previousVersion)); } + public void testMappingUpdateAccepts_docAsType() throws Exception { + final IndexService indexService = createIndex("test", + client().admin().indices().prepareCreate("test").addMapping("my_type")); + final MetaDataMappingService mappingService = getInstanceFromNode(MetaDataMappingService.class); + final ClusterService clusterService = getInstanceFromNode(ClusterService.class); + final PutMappingClusterStateUpdateRequest request = new PutMappingClusterStateUpdateRequest().type(MapperService.SINGLE_MAPPING_NAME); + request.indices(new Index[] {indexService.index()}); + request.source("{ \"properties\": { \"foo\": { \"type\": \"keyword\" } }}"); + final ClusterStateTaskExecutor.ClusterTasksResult result = + mappingService.putMappingExecutor.execute(clusterService.state(), Collections.singletonList(request)); + assertThat(result.executionResults.size(), equalTo(1)); + assertTrue(result.executionResults.values().iterator().next().isSuccess()); + MappingMetaData mappingMetaData = result.resultingState.metaData().index("test").mapping(); + assertEquals("my_type", mappingMetaData.type()); + assertEquals(Collections.singletonMap("properties", + Collections.singletonMap("foo", + Collections.singletonMap("type", "keyword"))), mappingMetaData.sourceAsMap()); + } } From 34f503b7b174785850212aff51e9acb1c68375ff Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Thu, 28 Mar 2019 12:00:39 +0100 Subject: [PATCH 2/2] iter --- .../cluster/metadata/MetaDataMappingServiceTests.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java index 14e8e100a2cbb..81fd5ec7fc83d 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java @@ -120,7 +120,8 @@ public void testMappingUpdateAccepts_docAsType() throws Exception { client().admin().indices().prepareCreate("test").addMapping("my_type")); final MetaDataMappingService mappingService = getInstanceFromNode(MetaDataMappingService.class); final ClusterService clusterService = getInstanceFromNode(ClusterService.class); - final PutMappingClusterStateUpdateRequest request = new PutMappingClusterStateUpdateRequest().type(MapperService.SINGLE_MAPPING_NAME); + final PutMappingClusterStateUpdateRequest request = new PutMappingClusterStateUpdateRequest() + .type(MapperService.SINGLE_MAPPING_NAME); request.indices(new Index[] {indexService.index()}); request.source("{ \"properties\": { \"foo\": { \"type\": \"keyword\" } }}"); final ClusterStateTaskExecutor.ClusterTasksResult result =