Search in sources :

Example 66 with XContentType

use of org.elasticsearch.common.xcontent.XContentType in project elasticsearch by elastic.

the class XContentHelperTests method testToXContent.

public void testToXContent() throws IOException {
    final XContentType xContentType = randomFrom(XContentType.values());
    final ToXContent toXContent;
    final boolean error;
    if (randomBoolean()) {
        if (randomBoolean()) {
            error = false;
            toXContent = (builder, params) -> builder.field("field", "value");
        } else {
            error = true;
            toXContent = (builder, params) -> builder.startObject().field("field", "value").endObject();
        }
    } else {
        if (randomBoolean()) {
            error = false;
            toXContent = (ToXContentObject) (builder, params) -> builder.startObject().field("field", "value").endObject();
        } else {
            error = true;
            toXContent = (ToXContentObject) (builder, params) -> builder.field("field", "value");
        }
    }
    if (error) {
        expectThrows(IOException.class, () -> XContentHelper.toXContent(toXContent, xContentType, randomBoolean()));
    } else {
        BytesReference bytes = XContentHelper.toXContent(toXContent, xContentType, randomBoolean());
        try (XContentParser parser = xContentType.xContent().createParser(NamedXContentRegistry.EMPTY, bytes)) {
            assertEquals(XContentParser.Token.START_OBJECT, parser.nextToken());
            assertEquals(XContentParser.Token.FIELD_NAME, parser.nextToken());
            assertTrue(parser.nextToken().isValue());
            assertEquals("value", parser.text());
            assertEquals(XContentParser.Token.END_OBJECT, parser.nextToken());
            assertNull(parser.nextToken());
        }
    }
}
Also used : ToXContent(org.elasticsearch.common.xcontent.ToXContent) Arrays(java.util.Arrays) XContentType(org.elasticsearch.common.xcontent.XContentType) ToXContent(org.elasticsearch.common.xcontent.ToXContent) Matchers(org.hamcrest.Matchers) IOException(java.io.IOException) HashMap(java.util.HashMap) BytesReference(org.elasticsearch.common.bytes.BytesReference) XContentHelper(org.elasticsearch.common.xcontent.XContentHelper) XContentParser(org.elasticsearch.common.xcontent.XContentParser) List(java.util.List) Map(java.util.Map) ToXContentObject(org.elasticsearch.common.xcontent.ToXContentObject) ESTestCase(org.elasticsearch.test.ESTestCase) NamedXContentRegistry(org.elasticsearch.common.xcontent.NamedXContentRegistry) BytesReference(org.elasticsearch.common.bytes.BytesReference) XContentType(org.elasticsearch.common.xcontent.XContentType) XContentParser(org.elasticsearch.common.xcontent.XContentParser)

Example 67 with XContentType

use of org.elasticsearch.common.xcontent.XContentType in project elasticsearch by elastic.

the class XContentMapValuesTests method testThatFilterIncludesEmptyObjectWhenUsingExcludes.

public void testThatFilterIncludesEmptyObjectWhenUsingExcludes() throws Exception {
    XContentBuilder builder = XContentFactory.jsonBuilder().startObject().startObject("obj").endObject().endObject();
    Tuple<XContentType, Map<String, Object>> mapTuple = XContentHelper.convertToMap(builder.bytes(), true, builder.contentType());
    Map<String, Object> filteredSource = XContentMapValues.filter(mapTuple.v2(), Strings.EMPTY_ARRAY, new String[] { "nonExistingField" });
    assertThat(mapTuple.v2(), equalTo(filteredSource));
}
Also used : XContentType(org.elasticsearch.common.xcontent.XContentType) Collections.emptyMap(java.util.Collections.emptyMap) HashMap(java.util.HashMap) Map(java.util.Map) Collections.singletonMap(java.util.Collections.singletonMap) XContentBuilder(org.elasticsearch.common.xcontent.XContentBuilder)

Example 68 with XContentType

use of org.elasticsearch.common.xcontent.XContentType in project elasticsearch by elastic.

the class XContentMapValuesTests method testIncludingObjectWithNestedIncludedObject.

@SuppressWarnings({ "unchecked" })
public void testIncludingObjectWithNestedIncludedObject() throws Exception {
    XContentBuilder builder = XContentFactory.jsonBuilder().startObject().startObject("obj1").startObject("obj2").endObject().endObject().endObject();
    Tuple<XContentType, Map<String, Object>> mapTuple = XContentHelper.convertToMap(builder.bytes(), true, builder.contentType());
    Map<String, Object> filteredSource = XContentMapValues.filter(mapTuple.v2(), new String[] { "*.obj2" }, Strings.EMPTY_ARRAY);
    assertThat(filteredSource.size(), equalTo(1));
    assertThat(filteredSource, hasKey("obj1"));
    assertThat(((Map) filteredSource.get("obj1")).size(), equalTo(1));
    assertThat(((Map<String, Object>) filteredSource.get("obj1")), hasKey("obj2"));
    assertThat(((Map) ((Map) filteredSource.get("obj1")).get("obj2")).size(), equalTo(0));
}
Also used : XContentType(org.elasticsearch.common.xcontent.XContentType) Collections.emptyMap(java.util.Collections.emptyMap) HashMap(java.util.HashMap) Map(java.util.Map) Collections.singletonMap(java.util.Collections.singletonMap) XContentBuilder(org.elasticsearch.common.xcontent.XContentBuilder)

Example 69 with XContentType

use of org.elasticsearch.common.xcontent.XContentType in project elasticsearch by elastic.

the class XContentMapValuesTests method testThatFilterIncludesEmptyObjectWhenUsingIncludes.

public void testThatFilterIncludesEmptyObjectWhenUsingIncludes() throws Exception {
    XContentBuilder builder = XContentFactory.jsonBuilder().startObject().startObject("obj").endObject().endObject();
    Tuple<XContentType, Map<String, Object>> mapTuple = XContentHelper.convertToMap(builder.bytes(), true, builder.contentType());
    Map<String, Object> filteredSource = XContentMapValues.filter(mapTuple.v2(), new String[] { "obj" }, Strings.EMPTY_ARRAY);
    assertThat(mapTuple.v2(), equalTo(filteredSource));
}
Also used : XContentType(org.elasticsearch.common.xcontent.XContentType) Collections.emptyMap(java.util.Collections.emptyMap) HashMap(java.util.HashMap) Map(java.util.Map) Collections.singletonMap(java.util.Collections.singletonMap) XContentBuilder(org.elasticsearch.common.xcontent.XContentBuilder)

Example 70 with XContentType

use of org.elasticsearch.common.xcontent.XContentType in project elasticsearch by elastic.

the class TemplateQueryBuilderTests method testUnknownField.

/**
     * Override superclass test since template query doesn't support boost and queryName, so
     * we need to mutate other existing field in the test query.
     */
@Override
public void testUnknownField() throws IOException {
    TemplateQueryBuilder testQuery = createTestQueryBuilder();
    XContentType xContentType = randomFrom(XContentType.JSON, XContentType.YAML);
    String testQueryAsString = toXContent(testQuery, xContentType).string();
    String queryAsString = testQueryAsString.replace("inline", "bogusField");
    try {
        parseQuery(createParser(xContentType.xContent(), queryAsString));
        fail("IllegalArgumentException expected");
    } catch (IllegalArgumentException e) {
        assertThat(e.getMessage(), containsString("[script] unknown field [bogusField], parser not found"));
    }
}
Also used : XContentType(org.elasticsearch.common.xcontent.XContentType) Matchers.containsString(org.hamcrest.Matchers.containsString)

Aggregations

XContentType (org.elasticsearch.common.xcontent.XContentType)82 BytesReference (org.elasticsearch.common.bytes.BytesReference)48 XContentParser (org.elasticsearch.common.xcontent.XContentParser)42 Map (java.util.Map)19 XContentBuilder (org.elasticsearch.common.xcontent.XContentBuilder)19 HashMap (java.util.HashMap)18 IndexRequest (org.elasticsearch.action.index.IndexRequest)11 DocWriteRequest (org.elasticsearch.action.DocWriteRequest)10 IOException (java.io.IOException)9 BytesRef (org.apache.lucene.util.BytesRef)8 DeleteRequest (org.elasticsearch.action.delete.DeleteRequest)8 Collections.emptyMap (java.util.Collections.emptyMap)6 ElasticsearchException (org.elasticsearch.ElasticsearchException)6 BulkRequest (org.elasticsearch.action.bulk.BulkRequest)6 UpdateRequest (org.elasticsearch.action.update.UpdateRequest)6 Collections.singletonMap (java.util.Collections.singletonMap)5 HttpEntity (org.apache.http.HttpEntity)5 ByteArrayEntity (org.apache.http.entity.ByteArrayEntity)5 GetRequest (org.elasticsearch.action.get.GetRequest)5 WriteRequest (org.elasticsearch.action.support.WriteRequest)5