summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java
diff options
context:
space:
mode:
authorMasaru Hasegawa <haniomasali@gmail.com>2016-12-16 15:07:51 +0900
committerGitHub <noreply@github.com>2016-12-16 15:07:51 +0900
commita0185c83a7e0f0fd02b0594696a64513877ae1c4 (patch)
tree2f149bb6eb7e0cda7fc0430ee400d7771206ffbd /core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java
parent41ffb008ad285735f8bc3c9b97b23c6589a17fef (diff)
parent3df2a086d4bf3c5608aabf06c1766e10c901af35 (diff)
Merge pull request #21393 from masaruh/alias_boost
Resolve index names in indices_boost
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java
index 101d35f778..8ec873704d 100644
--- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java
@@ -314,4 +314,78 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase {
assertEquals("query", sourceAsMap.keySet().iterator().next());
}
}
+
+ public void testParseIndicesBoost() throws IOException {
+ {
+ String restContent = " { \"indices_boost\": {\"foo\": 1.0, \"bar\": 2.0}}";
+ try (XContentParser parser = XContentFactory.xContent(restContent).createParser(restContent)) {
+ SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser),
+ searchRequestParsers.aggParsers, searchRequestParsers.suggesters, searchRequestParsers.searchExtParsers);
+ assertEquals(2, searchSourceBuilder.indexBoosts().size());
+ assertEquals(new SearchSourceBuilder.IndexBoost("foo", 1.0f), searchSourceBuilder.indexBoosts().get(0));
+ assertEquals(new SearchSourceBuilder.IndexBoost("bar", 2.0f), searchSourceBuilder.indexBoosts().get(1));
+ }
+ }
+
+ {
+ String restContent = "{" +
+ " \"indices_boost\" : [\n" +
+ " { \"foo\" : 1.0 },\n" +
+ " { \"bar\" : 2.0 },\n" +
+ " { \"baz\" : 3.0 }\n" +
+ " ]}";
+ try (XContentParser parser = XContentFactory.xContent(restContent).createParser(restContent)) {
+ SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser),
+ searchRequestParsers.aggParsers, searchRequestParsers.suggesters, searchRequestParsers.searchExtParsers);
+ assertEquals(3, searchSourceBuilder.indexBoosts().size());
+ assertEquals(new SearchSourceBuilder.IndexBoost("foo", 1.0f), searchSourceBuilder.indexBoosts().get(0));
+ assertEquals(new SearchSourceBuilder.IndexBoost("bar", 2.0f), searchSourceBuilder.indexBoosts().get(1));
+ assertEquals(new SearchSourceBuilder.IndexBoost("baz", 3.0f), searchSourceBuilder.indexBoosts().get(2));
+ }
+ }
+
+ {
+ String restContent = "{" +
+ " \"indices_boost\" : [\n" +
+ " { \"foo\" : 1.0, \"bar\": 2.0}\n" + // invalid format
+ " ]}";
+
+ assertIndicesBoostParseErrorMessage(restContent, "Expected [END_OBJECT] in [indices_boost] but found [FIELD_NAME]");
+ }
+
+ {
+ String restContent = "{" +
+ " \"indices_boost\" : [\n" +
+ " {}\n" + // invalid format
+ " ]}";
+
+ assertIndicesBoostParseErrorMessage(restContent, "Expected [FIELD_NAME] in [indices_boost] but found [END_OBJECT]");
+ }
+
+ {
+ String restContent = "{" +
+ " \"indices_boost\" : [\n" +
+ " { \"foo\" : \"bar\"}\n" + // invalid format
+ " ]}";
+
+ assertIndicesBoostParseErrorMessage(restContent, "Expected [VALUE_NUMBER] in [indices_boost] but found [VALUE_STRING]");
+ }
+
+ {
+ String restContent = "{" +
+ " \"indices_boost\" : [\n" +
+ " { \"foo\" : {\"bar\": 1}}\n" + // invalid format
+ " ]}";
+
+ assertIndicesBoostParseErrorMessage(restContent, "Expected [VALUE_NUMBER] in [indices_boost] but found [START_OBJECT]");
+ }
+ }
+
+ private void assertIndicesBoostParseErrorMessage(String restContent, String expectedErrorMessage) throws IOException {
+ try (XContentParser parser = XContentFactory.xContent(restContent).createParser(restContent)) {
+ ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(createParseContext(parser),
+ searchRequestParsers.aggParsers, searchRequestParsers.suggesters, searchRequestParsers.searchExtParsers));
+ assertEquals(expectedErrorMessage, e.getMessage());
+ }
+ }
}