public void testFromXContent() throws IOException { SearchSortValues sortValues = createTestItem(); XContentType xcontentType = randomFrom(XContentType.values()); XContentBuilder builder = XContentFactory.contentBuilder(xcontentType); if (randomBoolean()) { builder.prettyPrint(); } builder .startObject(); // we need to wrap xContent output in proper object to create a parser for // it builder = sortValues.toXContent(builder, ToXContent.EMPTY_PARAMS); builder.endObject(); XContentParser parser = createParser(builder); parser .nextToken(); // skip to the elements field name token, fromXContent advances from there if // called from ourside parser.nextToken(); if (sortValues.sortValues().length > 0) { SearchSortValues parsed = SearchSortValues.fromXContent(parser); assertToXContentEquivalent( builder.bytes(), toXContent(parsed, xcontentType, true), xcontentType); parser.nextToken(); } assertEquals(XContentParser.Token.END_OBJECT, parser.currentToken()); assertNull(parser.nextToken()); }
public void testToXContent() throws IOException { SearchSortValues sortValues = new SearchSortValues(new Object[] {1, "foo", 3.0}); XContentBuilder builder = JsonXContent.contentBuilder(); builder.startObject(); sortValues.toXContent(builder, ToXContent.EMPTY_PARAMS); builder.endObject(); assertEquals("{\"sort\":[1,\"foo\",3.0]}", builder.string()); }