summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/rest/HeadersAndContextCopyClientTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java/org/elasticsearch/rest/HeadersAndContextCopyClientTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/rest/HeadersAndContextCopyClientTests.java426
1 files changed, 0 insertions, 426 deletions
diff --git a/core/src/test/java/org/elasticsearch/rest/HeadersAndContextCopyClientTests.java b/core/src/test/java/org/elasticsearch/rest/HeadersAndContextCopyClientTests.java
deleted file mode 100644
index 2bcb491bab..0000000000
--- a/core/src/test/java/org/elasticsearch/rest/HeadersAndContextCopyClientTests.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
- * 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.rest;
-
-import org.elasticsearch.action.ActionRequest;
-import org.elasticsearch.action.ActionRequestBuilder;
-import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
-import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest;
-import org.elasticsearch.action.admin.cluster.stats.ClusterStatsRequest;
-import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
-import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
-import org.elasticsearch.action.admin.indices.flush.FlushRequest;
-import org.elasticsearch.action.get.GetRequest;
-import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.action.search.SearchRequest;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.client.Requests;
-import org.elasticsearch.common.collect.ImmutableOpenMap;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.test.ESTestCase;
-import org.elasticsearch.test.client.NoOpClient;
-import org.elasticsearch.test.rest.FakeRestRequest;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.Matchers.is;
-
-public class HeadersAndContextCopyClientTests extends ESTestCase {
-
- public void testRegisterRelevantHeaders() throws InterruptedException {
-
- final RestController restController = new RestController(Settings.EMPTY);
-
- int iterations = randomIntBetween(1, 5);
-
- Set<String> headers = new HashSet<>();
- ExecutorService executorService = Executors.newFixedThreadPool(iterations);
- for (int i = 0; i < iterations; i++) {
- int headersCount = randomInt(10);
- final Set<String> newHeaders = new HashSet<>();
- for (int j = 0; j < headersCount; j++) {
- String usefulHeader = randomRealisticUnicodeOfLengthBetween(1, 30);
- newHeaders.add(usefulHeader);
- }
- headers.addAll(newHeaders);
-
- executorService.submit(new Runnable() {
- @Override
- public void run() {
- restController.registerRelevantHeaders(newHeaders.toArray(new String[newHeaders.size()]));
- }
- });
- }
-
- executorService.shutdown();
- assertThat(executorService.awaitTermination(1, TimeUnit.SECONDS), equalTo(true));
- String[] relevantHeaders = restController.relevantHeaders().toArray(new String[restController.relevantHeaders().size()]);
- assertThat(relevantHeaders.length, equalTo(headers.size()));
-
- Arrays.sort(relevantHeaders);
- String[] headersArray = new String[headers.size()];
- headersArray = headers.toArray(headersArray);
- Arrays.sort(headersArray);
- assertThat(relevantHeaders, equalTo(headersArray));
- }
-
- public void testCopyHeadersRequest() {
- Map<String, String> transportHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> restHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> copiedHeaders = randomHeadersFrom(restHeaders);
- Set<String> usefulRestHeaders = new HashSet<>(copiedHeaders.keySet());
- usefulRestHeaders.addAll(randomMap(randomIntBetween(0, 10), "useful-").keySet());
- Map<String, String> restContext = randomContext(randomIntBetween(0, 10));
- Map<String, String> transportContext = onlyOnLeft(randomContext(randomIntBetween(0, 10)), restContext);
-
- Map<String, String> expectedHeaders = new HashMap<>();
- expectedHeaders.putAll(transportHeaders);
- expectedHeaders.putAll(copiedHeaders);
-
- Map<String, String> expectedContext = new HashMap<>();
- expectedContext.putAll(transportContext);
- expectedContext.putAll(restContext);
-
- try (Client client = client(new NoOpClient(getTestName()), new FakeRestRequest(restHeaders, restContext), usefulRestHeaders)) {
-
- SearchRequest searchRequest = Requests.searchRequest();
- putHeaders(searchRequest, transportHeaders);
- putContext(searchRequest, transportContext);
- assertHeaders(searchRequest, transportHeaders);
- client.search(searchRequest);
- assertHeaders(searchRequest, expectedHeaders);
- assertContext(searchRequest, expectedContext);
-
- GetRequest getRequest = Requests.getRequest("index");
- putHeaders(getRequest, transportHeaders);
- putContext(getRequest, transportContext);
- assertHeaders(getRequest, transportHeaders);
- client.get(getRequest);
- assertHeaders(getRequest, expectedHeaders);
- assertContext(getRequest, expectedContext);
-
- IndexRequest indexRequest = Requests.indexRequest();
- putHeaders(indexRequest, transportHeaders);
- putContext(indexRequest, transportContext);
- assertHeaders(indexRequest, transportHeaders);
- client.index(indexRequest);
- assertHeaders(indexRequest, expectedHeaders);
- assertContext(indexRequest, expectedContext);
- }
- }
-
- public void testCopyHeadersClusterAdminRequest() {
- Map<String, String> transportHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> restHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> copiedHeaders = randomHeadersFrom(restHeaders);
- Set<String> usefulRestHeaders = new HashSet<>(copiedHeaders.keySet());
- usefulRestHeaders.addAll(randomMap(randomIntBetween(0, 10), "useful-").keySet());
- Map<String, String> restContext = randomContext(randomIntBetween(0, 10));
- Map<String, String> transportContext = onlyOnLeft(randomContext(randomIntBetween(0, 10)), restContext);
-
- HashMap<String, String> expectedHeaders = new HashMap<>();
- expectedHeaders.putAll(transportHeaders);
- expectedHeaders.putAll(copiedHeaders);
-
- Map<String, String> expectedContext = new HashMap<>();
- expectedContext.putAll(transportContext);
- expectedContext.putAll(restContext);
-
- try (Client client = client(new NoOpClient(getTestName()), new FakeRestRequest(restHeaders, expectedContext), usefulRestHeaders)) {
-
- ClusterHealthRequest clusterHealthRequest = Requests.clusterHealthRequest();
- putHeaders(clusterHealthRequest, transportHeaders);
- putContext(clusterHealthRequest, transportContext);
- assertHeaders(clusterHealthRequest, transportHeaders);
- client.admin().cluster().health(clusterHealthRequest);
- assertHeaders(clusterHealthRequest, expectedHeaders);
- assertContext(clusterHealthRequest, expectedContext);
-
- ClusterStateRequest clusterStateRequest = Requests.clusterStateRequest();
- putHeaders(clusterStateRequest, transportHeaders);
- putContext(clusterStateRequest, transportContext);
- assertHeaders(clusterStateRequest, transportHeaders);
- client.admin().cluster().state(clusterStateRequest);
- assertHeaders(clusterStateRequest, expectedHeaders);
- assertContext(clusterStateRequest, expectedContext);
-
- ClusterStatsRequest clusterStatsRequest = Requests.clusterStatsRequest();
- putHeaders(clusterStatsRequest, transportHeaders);
- putContext(clusterStatsRequest, transportContext);
- assertHeaders(clusterStatsRequest, transportHeaders);
- client.admin().cluster().clusterStats(clusterStatsRequest);
- assertHeaders(clusterStatsRequest, expectedHeaders);
- assertContext(clusterStatsRequest, expectedContext);
- }
- }
-
- public void testCopyHeadersIndicesAdminRequest() {
- Map<String, String> transportHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> restHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> copiedHeaders = randomHeadersFrom(restHeaders);
- Set<String> usefulRestHeaders = new HashSet<>(copiedHeaders.keySet());
- usefulRestHeaders.addAll(randomMap(randomIntBetween(0, 10), "useful-").keySet());
- Map<String, String> restContext = randomContext(randomIntBetween(0, 10));
- Map<String, String> transportContext = onlyOnLeft(randomContext(randomIntBetween(0, 10)), restContext);
-
- HashMap<String, String> expectedHeaders = new HashMap<>();
- expectedHeaders.putAll(transportHeaders);
- expectedHeaders.putAll(copiedHeaders);
-
- Map<String, String> expectedContext = new HashMap<>();
- expectedContext.putAll(transportContext);
- expectedContext.putAll(restContext);
-
- try (Client client = client(new NoOpClient(getTestName()), new FakeRestRequest(restHeaders, restContext), usefulRestHeaders)) {
-
- CreateIndexRequest createIndexRequest = Requests.createIndexRequest("test");
- putHeaders(createIndexRequest, transportHeaders);
- putContext(createIndexRequest, transportContext);
- assertHeaders(createIndexRequest, transportHeaders);
- client.admin().indices().create(createIndexRequest);
- assertHeaders(createIndexRequest, expectedHeaders);
- assertContext(createIndexRequest, expectedContext);
-
- CloseIndexRequest closeIndexRequest = Requests.closeIndexRequest("test");
- putHeaders(closeIndexRequest, transportHeaders);
- putContext(closeIndexRequest, transportContext);
- assertHeaders(closeIndexRequest, transportHeaders);
- client.admin().indices().close(closeIndexRequest);
- assertHeaders(closeIndexRequest, expectedHeaders);
- assertContext(closeIndexRequest, expectedContext);
-
- FlushRequest flushRequest = Requests.flushRequest();
- putHeaders(flushRequest, transportHeaders);
- putContext(flushRequest, transportContext);
- assertHeaders(flushRequest, transportHeaders);
- client.admin().indices().flush(flushRequest);
- assertHeaders(flushRequest, expectedHeaders);
- assertContext(flushRequest, expectedContext);
- }
- }
-
- public void testCopyHeadersRequestBuilder() {
- Map<String, String> transportHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> restHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> copiedHeaders = randomHeadersFrom(restHeaders);
- Set<String> usefulRestHeaders = new HashSet<>(copiedHeaders.keySet());
- usefulRestHeaders.addAll(randomMap(randomIntBetween(0, 10), "useful-").keySet());
- Map<String, String> restContext = randomContext(randomIntBetween(0, 10));
- Map<String, String> transportContext = onlyOnLeft(randomContext(randomIntBetween(0, 10)), restContext);
-
- HashMap<String, String> expectedHeaders = new HashMap<>();
- expectedHeaders.putAll(transportHeaders);
- expectedHeaders.putAll(copiedHeaders);
-
- Map<String, String> expectedContext = new HashMap<>();
- expectedContext.putAll(transportContext);
- expectedContext.putAll(restContext);
-
- try (Client client = client(new NoOpClient(getTestName()), new FakeRestRequest(restHeaders, restContext), usefulRestHeaders)) {
-
- ActionRequestBuilder requestBuilders[] = new ActionRequestBuilder[]{
- client.prepareIndex("index", "type"),
- client.prepareGet("index", "type", "id"),
- client.prepareBulk(),
- client.prepareDelete(),
- client.prepareIndex(),
- client.prepareClearScroll(),
- client.prepareMultiGet(),
- };
-
- for (ActionRequestBuilder requestBuilder : requestBuilders) {
- putHeaders(requestBuilder.request(), transportHeaders);
- putContext(requestBuilder.request(), transportContext);
- assertHeaders(requestBuilder.request(), transportHeaders);
- requestBuilder.get();
- assertHeaders(requestBuilder.request(), expectedHeaders);
- assertContext(requestBuilder.request(), expectedContext);
- }
- }
- }
-
- public void testCopyHeadersClusterAdminRequestBuilder() {
- Map<String, String> transportHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> restHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> copiedHeaders = randomHeadersFrom(restHeaders);
- Set<String> usefulRestHeaders = new HashSet<>(copiedHeaders.keySet());
- usefulRestHeaders.addAll(randomMap(randomIntBetween(0, 10), "useful-").keySet());
- Map<String, String> restContext = randomContext(randomIntBetween(0, 10));
- Map<String, String> transportContext = onlyOnLeft(randomContext(randomIntBetween(0, 10)), restContext);
-
- HashMap<String, String> expectedHeaders = new HashMap<>();
- expectedHeaders.putAll(transportHeaders);
- expectedHeaders.putAll(copiedHeaders);
-
- Map<String, String> expectedContext = new HashMap<>();
- expectedContext.putAll(transportContext);
- expectedContext.putAll(restContext);
-
- try (Client client = client(new NoOpClient(getTestName()), new FakeRestRequest(restHeaders, restContext), usefulRestHeaders)) {
-
- ActionRequestBuilder requestBuilders[] = new ActionRequestBuilder[]{
- client.admin().cluster().prepareNodesInfo(),
- client.admin().cluster().prepareClusterStats(),
- client.admin().cluster().prepareState(),
- client.admin().cluster().prepareCreateSnapshot("repo", "name"),
- client.admin().cluster().prepareHealth(),
- client.admin().cluster().prepareReroute()
- };
-
- for (ActionRequestBuilder requestBuilder : requestBuilders) {
- putHeaders(requestBuilder.request(), transportHeaders);
- putContext(requestBuilder.request(), transportContext);
- assertHeaders(requestBuilder.request(), transportHeaders);
- requestBuilder.get();
- assertHeaders(requestBuilder.request(), expectedHeaders);
- assertContext(requestBuilder.request(), expectedContext);
- }
- }
- }
-
- public void testCopyHeadersIndicesAdminRequestBuilder() {
- Map<String, String> transportHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> restHeaders = randomHeaders(randomIntBetween(0, 10));
- Map<String, String> copiedHeaders = randomHeadersFrom(restHeaders);
- Set<String> usefulRestHeaders = new HashSet<>(copiedHeaders.keySet());
- usefulRestHeaders.addAll(randomMap(randomIntBetween(0, 10), "useful-").keySet());
- Map<String, String> restContext = randomContext(randomIntBetween(0, 10));
- Map<String, String> transportContext = onlyOnLeft(randomContext(randomIntBetween(0, 10)), restContext);
-
- HashMap<String, String> expectedHeaders = new HashMap<>();
- expectedHeaders.putAll(transportHeaders);
- expectedHeaders.putAll(copiedHeaders);
-
- Map<String, String> expectedContext = new HashMap<>();
- expectedContext.putAll(transportContext);
- expectedContext.putAll(restContext);
-
- try (Client client = client(new NoOpClient(getTestName()), new FakeRestRequest(restHeaders, restContext), usefulRestHeaders)) {
-
- ActionRequestBuilder requestBuilders[] = new ActionRequestBuilder[]{
- client.admin().indices().prepareValidateQuery(),
- client.admin().indices().prepareCreate("test"),
- client.admin().indices().prepareAliases(),
- client.admin().indices().prepareAnalyze("text"),
- client.admin().indices().prepareTypesExists("type"),
- client.admin().indices().prepareClose()
- };
-
- for (ActionRequestBuilder requestBuilder : requestBuilders) {
- putHeaders(requestBuilder.request(), transportHeaders);
- putContext(requestBuilder.request(), transportContext);
- assertHeaders(requestBuilder.request(), transportHeaders);
- requestBuilder.get();
- assertHeaders(requestBuilder.request(), expectedHeaders);
- assertContext(requestBuilder.request(), expectedContext);
- }
- }
- }
-
- private static Map<String, String> randomHeaders(int count) {
- return randomMap(count, "header-");
- }
-
- private static Map<String, String> randomContext(int count) {
- return randomMap(count, "context-");
- }
-
- private static Map<String, String> randomMap(int count, String prefix) {
- Map<String, String> headers = new HashMap<>();
- for (int i = 0; i < count; i++) {
- headers.put(prefix + randomInt(30), randomAsciiOfLength(10));
- }
- return headers;
- }
-
- private static Map<String, String> randomHeadersFrom(Map<String, String> headers) {
- Map<String, String> newHeaders = new HashMap<>();
- if (headers.isEmpty()) {
- return newHeaders;
- }
- int i = randomInt(headers.size() - 1);
- for (Map.Entry<String, String> entry : headers.entrySet()) {
- if (randomInt(i) == 0) {
- newHeaders.put(entry.getKey(), entry.getValue());
- }
- }
- return newHeaders;
- }
-
- private static Client client(Client noOpClient, RestRequest restRequest, Set<String> usefulRestHeaders) {
- return new BaseRestHandler.HeadersAndContextCopyClient(noOpClient, restRequest, usefulRestHeaders);
- }
-
- private static void putHeaders(ActionRequest<?> request, Map<String, String> headers) {
- for (Map.Entry<String, String> header : headers.entrySet()) {
- request.putHeader(header.getKey(), header.getValue());
- }
- }
-
- private static void putContext(ActionRequest<?> request, Map<String, String> context) {
- for (Map.Entry<String, String> header : context.entrySet()) {
- request.putInContext(header.getKey(), header.getValue());
- }
- }
-
- private static void assertHeaders(ActionRequest<?> request, Map<String, String> headers) {
- if (headers.size() == 0) {
- assertThat(request.getHeaders() == null || request.getHeaders().size() == 0, equalTo(true));
- } else {
- assertThat(request.getHeaders(), notNullValue());
- assertThat(request.getHeaders().size(), equalTo(headers.size()));
- for (String key : request.getHeaders()) {
- assertThat(headers.get(key), equalTo(request.getHeader(key)));
- }
- }
- }
-
- private static void assertContext(ActionRequest<?> request, Map<String, String> context) {
- if (context.size() == 0) {
- assertThat(request.isContextEmpty(), is(true));
- } else {
- ImmutableOpenMap map = request.getContext();
- assertThat(map, notNullValue());
- assertThat(map.size(), equalTo(context.size()));
- for (Object key : map.keys()) {
- assertThat(context.get(key), equalTo(request.getFromContext(key)));
- }
- }
- }
-
- private static Map<String, String> onlyOnLeft(Map<String, String> left, Map<String, String> right) {
- Map<String, String> map = new HashMap<>();
- for (Map.Entry<String, String> entry : left.entrySet()) {
- if (!right.containsKey(entry.getKey())) {
- map.put(entry.getKey(), entry.getValue());
- }
- }
- return map;
- }
-}