|
@@ -34,6 +34,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
import org.elasticsearch.common.xcontent.XContentFactory;
|
|
|
import org.elasticsearch.common.xcontent.XContentHelper;
|
|
|
import org.elasticsearch.common.xcontent.XContentType;
|
|
|
+import org.elasticsearch.rest.action.document.RestBulkAction;
|
|
|
import org.elasticsearch.script.Script;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
|
|
@@ -57,42 +58,46 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
public void testSimpleBulk1() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON);
|
|
|
+ bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON);
|
|
|
assertThat(bulkRequest.numberOfActions(), equalTo(3));
|
|
|
assertThat(((IndexRequest) bulkRequest.requests().get(0)).source(), equalTo(new BytesArray("{ \"field1\" : \"value1\" }")));
|
|
|
assertThat(bulkRequest.requests().get(1), instanceOf(DeleteRequest.class));
|
|
|
assertThat(((IndexRequest) bulkRequest.requests().get(2)).source(), equalTo(new BytesArray("{ \"field1\" : \"value3\" }")));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulkWithCarriageReturn() throws Exception {
|
|
|
String bulkAction = "{ \"index\":{\"_index\":\"test\",\"_type\":\"type1\",\"_id\":\"1\"} }\r\n{ \"field1\" : \"value1\" }\r\n";
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON);
|
|
|
+ bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON);
|
|
|
assertThat(bulkRequest.numberOfActions(), equalTo(1));
|
|
|
assertThat(((IndexRequest) bulkRequest.requests().get(0)).source(), equalTo(new BytesArray("{ \"field1\" : \"value1\" }")));
|
|
|
Map<String, Object> sourceMap = XContentHelper.convertToMap(((IndexRequest) bulkRequest.requests().get(0)).source(),
|
|
|
false, XContentType.JSON).v2();
|
|
|
assertEquals("value1", sourceMap.get("field1"));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulk2() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk2.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON);
|
|
|
+ bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON);
|
|
|
assertThat(bulkRequest.numberOfActions(), equalTo(3));
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulk3() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk3.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON);
|
|
|
+ bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON);
|
|
|
assertThat(bulkRequest.numberOfActions(), equalTo(3));
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulk4() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk4.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON);
|
|
|
+ bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON);
|
|
|
assertThat(bulkRequest.numberOfActions(), equalTo(4));
|
|
|
assertThat(bulkRequest.requests().get(0).id(), equalTo("1"));
|
|
|
assertThat(((UpdateRequest) bulkRequest.requests().get(0)).retryOnConflict(), equalTo(2));
|
|
@@ -109,6 +114,8 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
assertThat(scriptParams.size(), equalTo(1));
|
|
|
assertThat(scriptParams.get("param1"), equalTo(1));
|
|
|
assertThat(((UpdateRequest) bulkRequest.requests().get(1)).upsertRequest().source().utf8ToString(), equalTo("{\"counter\":1}"));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testBulkAllowExplicitIndex() throws Exception {
|
|
@@ -120,6 +127,8 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk5.json");
|
|
|
new BulkRequest().add(new BytesArray(bulkAction.getBytes(StandardCharsets.UTF_8)), "test", null, false, XContentType.JSON);
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testBulkAddIterable() {
|
|
@@ -139,32 +148,38 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk6.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
ParsingException exc = expectThrows(ParsingException.class,
|
|
|
- () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertThat(exc.getMessage(), containsString("Unknown key for a VALUE_STRING in [hello]"));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulk7() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk7.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
IllegalArgumentException exc = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertThat(exc.getMessage(),
|
|
|
containsString("Malformed action/metadata line [5], expected a simple value for field [_unknown] but found [START_ARRAY]"));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulk8() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk8.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
IllegalArgumentException exc = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertThat(exc.getMessage(), containsString("Action/metadata line [3] contains an unknown parameter [_foo]"));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testSimpleBulk9() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk9.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
IllegalArgumentException exc = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertThat(exc.getMessage(),
|
|
|
containsString("Malformed action/metadata line [3], expected START_OBJECT or END_OBJECT but found [START_ARRAY]"));
|
|
|
}
|
|
@@ -172,8 +187,10 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
public void testSimpleBulk10() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk10.json");
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
- bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON);
|
|
|
+ bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON);
|
|
|
assertThat(bulkRequest.numberOfActions(), equalTo(9));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testBulkActionShouldNotContainArray() throws Exception {
|
|
@@ -181,13 +198,13 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
+ "{ \"field1\" : \"value1\" }\r\n";
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
IllegalArgumentException exc = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertEquals(exc.getMessage(), "Malformed action/metadata line [1]" +
|
|
|
", expected a simple value for field [_index] but found [START_ARRAY]");
|
|
|
}
|
|
|
|
|
|
public void testBulkEmptyObject() throws Exception {
|
|
|
- String bulkIndexAction = "{ \"index\":{\"_index\":\"test\",\"_type\":\"type1\",\"_id\":\"1\"} }\r\n";
|
|
|
+ String bulkIndexAction = "{ \"index\":{\"_index\":\"test\",\"_id\":\"1\"} }\r\n";
|
|
|
String bulkIndexSource = "{ \"field1\" : \"value1\" }\r\n";
|
|
|
String emptyObject = "{}\r\n";
|
|
|
StringBuilder bulk = new StringBuilder();
|
|
@@ -207,7 +224,7 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
String bulkAction = bulk.toString();
|
|
|
BulkRequest bulkRequest = new BulkRequest();
|
|
|
IllegalArgumentException exc = expectThrows(IllegalArgumentException.class,
|
|
|
- () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ () -> bulkRequest.add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertThat(exc.getMessage(), containsString("Malformed action/metadata line ["
|
|
|
+ emptyLine + "], expected FIELD_NAME but found [END_OBJECT]"));
|
|
|
}
|
|
@@ -218,7 +235,7 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
// We force here a "id is missing" validation error
|
|
|
bulkRequest.add(new DeleteRequest("index", "type", null).setRefreshPolicy(RefreshPolicy.IMMEDIATE));
|
|
|
// We force here a "type is missing" validation error
|
|
|
- bulkRequest.add(new DeleteRequest("index", null, "id"));
|
|
|
+ bulkRequest.add(new DeleteRequest("index", "", "id"));
|
|
|
bulkRequest.add(new DeleteRequest("index", "type", "id").setRefreshPolicy(RefreshPolicy.IMMEDIATE));
|
|
|
bulkRequest.add(new UpdateRequest("index", "type", "id").doc("{}", XContentType.JSON).setRefreshPolicy(RefreshPolicy.IMMEDIATE));
|
|
|
bulkRequest.add(new IndexRequest("index", "type", "id").source("{}", XContentType.JSON).setRefreshPolicy(RefreshPolicy.IMMEDIATE));
|
|
@@ -290,6 +307,8 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
IndexRequest request = (IndexRequest) docWriteRequest;
|
|
|
assertEquals(1, request.sourceAsMap().size());
|
|
|
assertEquals("value", request.sourceAsMap().get("field"));
|
|
|
+ //This test's content contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testToValidateUpsertRequestAndVersionInBulkRequest() throws IOException {
|
|
@@ -324,18 +343,22 @@ public class BulkRequestTests extends ESTestCase {
|
|
|
bulkRequest.add(data, null, null, xContentType);
|
|
|
assertThat(bulkRequest.validate().validationErrors(), contains("can't provide both upsert request and a version",
|
|
|
"can't provide version in upsert request"));
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
|
|
|
public void testBulkTerminatedByNewline() throws Exception {
|
|
|
String bulkAction = copyToStringFromClasspath("/org/elasticsearch/action/bulk/simple-bulk11.json");
|
|
|
IllegalArgumentException expectThrows = expectThrows(IllegalArgumentException.class, () -> new BulkRequest()
|
|
|
- .add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, null, XContentType.JSON));
|
|
|
+ .add(bulkAction.getBytes(StandardCharsets.UTF_8), 0, bulkAction.length(), null, XContentType.JSON));
|
|
|
assertEquals("The bulk request must be terminated by a newline [\n]", expectThrows.getMessage());
|
|
|
|
|
|
String bulkActionWithNewLine = bulkAction + "\n";
|
|
|
BulkRequest bulkRequestWithNewLine = new BulkRequest();
|
|
|
- bulkRequestWithNewLine.add(bulkActionWithNewLine.getBytes(StandardCharsets.UTF_8), 0, bulkActionWithNewLine.length(), null, null,
|
|
|
+ bulkRequestWithNewLine.add(bulkActionWithNewLine.getBytes(StandardCharsets.UTF_8), 0, bulkActionWithNewLine.length(), null,
|
|
|
XContentType.JSON);
|
|
|
assertEquals(3, bulkRequestWithNewLine.numberOfActions());
|
|
|
+ //This test's JSON contains outdated references to types
|
|
|
+ assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
|
|
}
|
|
|
}
|