Update Delete Watch to allow unknown fields (#37435)
DeleteWatchResponse did not allow unknown fields. This commit fixes the test and ConstructingObjectParser such that it does now allow unknown fields. Relates #36938
This commit is contained in:
parent
397f315f56
commit
cd78565acf
|
@ -20,17 +20,15 @@ package org.elasticsearch.client.watcher;
|
|||
|
||||
import org.elasticsearch.common.ParseField;
|
||||
import org.elasticsearch.common.xcontent.ObjectParser;
|
||||
import org.elasticsearch.common.xcontent.ToXContentObject;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
|
||||
public class DeleteWatchResponse implements ToXContentObject {
|
||||
public class DeleteWatchResponse {
|
||||
|
||||
private static final ObjectParser<DeleteWatchResponse, Void> PARSER
|
||||
= new ObjectParser<>("x_pack_delete_watch_response", DeleteWatchResponse::new);
|
||||
= new ObjectParser<>("x_pack_delete_watch_response", true, DeleteWatchResponse::new);
|
||||
static {
|
||||
PARSER.declareString(DeleteWatchResponse::setId, new ParseField("_id"));
|
||||
PARSER.declareLong(DeleteWatchResponse::setVersion, new ParseField("_version"));
|
||||
|
@ -89,15 +87,6 @@ public class DeleteWatchResponse implements ToXContentObject {
|
|||
return Objects.hash(id, version, found);
|
||||
}
|
||||
|
||||
@Override
|
||||
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
|
||||
return builder.startObject()
|
||||
.field("_id", id)
|
||||
.field("_version", version)
|
||||
.field("found", found)
|
||||
.endObject();
|
||||
}
|
||||
|
||||
public static DeleteWatchResponse fromXContent(XContentParser parser) throws IOException {
|
||||
return PARSER.parse(parser, null);
|
||||
}
|
||||
|
|
|
@ -18,28 +18,37 @@
|
|||
*/
|
||||
package org.elasticsearch.client.watcher;
|
||||
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
import org.elasticsearch.test.AbstractXContentTestCase;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class DeleteWatchResponseTests extends AbstractXContentTestCase<DeleteWatchResponse> {
|
||||
import static org.elasticsearch.test.AbstractXContentTestCase.xContentTester;
|
||||
|
||||
@Override
|
||||
protected DeleteWatchResponse createTestInstance() {
|
||||
public class DeleteWatchResponseTests extends ESTestCase {
|
||||
|
||||
public void testFromXContent() throws IOException {
|
||||
xContentTester(this::createParser,
|
||||
DeleteWatchResponseTests::createTestInstance,
|
||||
DeleteWatchResponseTests::toXContent,
|
||||
DeleteWatchResponse::fromXContent)
|
||||
.supportsUnknownFields(true)
|
||||
.assertToXContentEquivalence(false)
|
||||
.test();
|
||||
}
|
||||
|
||||
private static XContentBuilder toXContent(DeleteWatchResponse response, XContentBuilder builder) throws IOException {
|
||||
return builder.startObject()
|
||||
.field("_id", response.getId())
|
||||
.field("_version", response.getVersion())
|
||||
.field("found", response.isFound())
|
||||
.endObject();
|
||||
}
|
||||
|
||||
private static DeleteWatchResponse createTestInstance() {
|
||||
String id = randomAlphaOfLength(10);
|
||||
long version = randomLongBetween(1, 10);
|
||||
boolean found = randomBoolean();
|
||||
return new DeleteWatchResponse(id, version, found);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DeleteWatchResponse doParseInstance(XContentParser parser) throws IOException {
|
||||
return DeleteWatchResponse.fromXContent(parser);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean supportsUnknownFields() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue