|
@@ -9,9 +9,11 @@
|
|
|
package org.elasticsearch.rest.action.document;
|
|
|
|
|
|
import org.elasticsearch.ResourceNotFoundException;
|
|
|
+import org.elasticsearch.action.get.GetRequest;
|
|
|
import org.elasticsearch.action.get.GetResponse;
|
|
|
import org.elasticsearch.common.bytes.BytesArray;
|
|
|
import org.elasticsearch.common.bytes.BytesReference;
|
|
|
+import org.elasticsearch.core.RestApiVersion;
|
|
|
import org.elasticsearch.index.get.GetResult;
|
|
|
import org.elasticsearch.rest.RestRequest;
|
|
|
import org.elasticsearch.rest.RestResponse;
|
|
@@ -21,21 +23,33 @@ import org.elasticsearch.test.rest.FakeRestRequest;
|
|
|
import org.elasticsearch.test.rest.RestActionTestCase;
|
|
|
import org.junit.AfterClass;
|
|
|
import org.junit.Before;
|
|
|
+import org.mockito.Mockito;
|
|
|
+
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import static java.util.Collections.emptyMap;
|
|
|
import static org.elasticsearch.index.seqno.SequenceNumbers.UNASSIGNED_SEQ_NO;
|
|
|
import static org.elasticsearch.rest.RestStatus.OK;
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
+import static org.hamcrest.Matchers.instanceOf;
|
|
|
|
|
|
public class RestGetSourceActionTests extends RestActionTestCase {
|
|
|
|
|
|
private static RestRequest request = new FakeRestRequest();
|
|
|
private static FakeRestChannel channel = new FakeRestChannel(request, true, 0);
|
|
|
private static RestGetSourceResponseListener listener = new RestGetSourceResponseListener(channel, request);
|
|
|
+ private final List<String> compatibleMediaType = Collections.singletonList(randomCompatibleMediaType(RestApiVersion.V_7));
|
|
|
|
|
|
@Before
|
|
|
public void setUpAction() {
|
|
|
controller().registerHandler(new RestGetSourceAction());
|
|
|
+ verifyingClient.setExecuteVerifier((actionType, request) -> {
|
|
|
+ assertThat(request, instanceOf(GetRequest.class));
|
|
|
+ return Mockito.mock(GetResponse.class);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
@AfterClass
|
|
@@ -44,6 +58,7 @@ public class RestGetSourceActionTests extends RestActionTestCase {
|
|
|
channel = null;
|
|
|
listener = null;
|
|
|
}
|
|
|
+
|
|
|
public void testRestGetSourceAction() throws Exception {
|
|
|
final BytesReference source = new BytesArray("{\"foo\": \"bar\"}");
|
|
|
final GetResponse response =
|
|
@@ -73,4 +88,57 @@ public class RestGetSourceActionTests extends RestActionTestCase {
|
|
|
|
|
|
assertThat(exception.getMessage(), equalTo("Source not found [index1]/[1]"));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * test deprecation is logged if type is used in path
|
|
|
+ */
|
|
|
+ public void testTypeInGetPath() {
|
|
|
+ RestRequest request = new FakeRestRequest.Builder(xContentRegistry())
|
|
|
+ .withHeaders(Map.of("Accept", compatibleMediaType))
|
|
|
+ .withMethod(RestRequest.Method.HEAD)
|
|
|
+ .withPath("/some_index/some_type/id/_source")
|
|
|
+ .build();
|
|
|
+ dispatchRequest(request);
|
|
|
+ assertWarnings(RestGetSourceAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testTypeInHeadPath() {
|
|
|
+ RestRequest request = new FakeRestRequest.Builder(xContentRegistry())
|
|
|
+ .withHeaders(Map.of("Accept", compatibleMediaType))
|
|
|
+ .withMethod(RestRequest.Method.GET)
|
|
|
+ .withPath("/some_index/some_type/id/_source")
|
|
|
+ .build();
|
|
|
+ dispatchRequest(request);
|
|
|
+ assertWarnings(RestGetSourceAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * test deprecation is logged if type is used as parameter
|
|
|
+ */
|
|
|
+ public void testTypeParameterAndGet() {
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("type", "some_type");
|
|
|
+ RestRequest request = new FakeRestRequest.Builder(xContentRegistry())
|
|
|
+ .withHeaders(Map.of("Accept", compatibleMediaType))
|
|
|
+ .withMethod(RestRequest.Method.GET)
|
|
|
+ .withPath("/some_index/_source/id")
|
|
|
+ .withParams(params)
|
|
|
+ .build();
|
|
|
+ dispatchRequest(request);
|
|
|
+ assertWarnings(RestGetSourceAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testTypeParameterAndHead() {
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("type", "some_type");
|
|
|
+ RestRequest request = new FakeRestRequest.Builder(xContentRegistry())
|
|
|
+ .withHeaders(Map.of("Accept", compatibleMediaType))
|
|
|
+ .withMethod(RestRequest.Method.HEAD)
|
|
|
+ .withPath("/some_index/_source/id")
|
|
|
+ .withParams(params)
|
|
|
+ .build();
|
|
|
+ dispatchRequest(request);
|
|
|
+ assertWarnings(RestGetSourceAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
+ }
|
|
|
+
|
|
|
}
|