|
|
@@ -368,44 +368,48 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
|
|
|
public void testQueryContextParsingBasic() throws Exception {
|
|
|
XContentBuilder builder = jsonBuilder().value("context1");
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testBooleanQueryContextParsingBasic() throws Exception {
|
|
|
XContentBuilder builder = jsonBuilder().value(true);
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("true"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("true"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testNumberQueryContextParsingBasic() throws Exception {
|
|
|
XContentBuilder builder = jsonBuilder().value(10);
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("10"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("10"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testNULLQueryContextParsingBasic() throws Exception {
|
|
|
XContentBuilder builder = jsonBuilder().nullValue();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
|
|
|
- XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
- assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be an object, string, number or boolean"));
|
|
|
+ XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
+ assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be an object, string, number or boolean"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingArray() throws Exception {
|
|
|
@@ -413,16 +417,17 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.value("context1")
|
|
|
.value("context2")
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(2));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
- assertThat(internalQueryContexts.get(1).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(2));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
+ assertThat(internalQueryContexts.get(1).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingMixedTypeValuesArray() throws Exception {
|
|
|
@@ -432,22 +437,23 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.value(true)
|
|
|
.value(10)
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(4));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
- assertThat(internalQueryContexts.get(1).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(2).context, equalTo("true"));
|
|
|
- assertThat(internalQueryContexts.get(2).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(2).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(3).context, equalTo("10"));
|
|
|
- assertThat(internalQueryContexts.get(3).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(3).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(4));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
+ assertThat(internalQueryContexts.get(1).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(2).context, equalTo("true"));
|
|
|
+ assertThat(internalQueryContexts.get(2).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(2).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(3).context, equalTo("10"));
|
|
|
+ assertThat(internalQueryContexts.get(3).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(3).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingMixedTypeValuesArrayHavingNULL() throws Exception {
|
|
|
@@ -458,11 +464,12 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.value(10)
|
|
|
.nullValue()
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
|
|
|
- XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
- assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be an object, string, number or boolean"));
|
|
|
+ XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
+ assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be an object, string, number or boolean"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingObject() throws Exception {
|
|
|
@@ -471,13 +478,14 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("boost", 10)
|
|
|
.field("prefix", true)
|
|
|
.endObject();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(10));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(10));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingObjectHavingBoolean() throws Exception {
|
|
|
@@ -486,13 +494,14 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("boost", 10)
|
|
|
.field("prefix", true)
|
|
|
.endObject();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("false"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(10));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("false"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(10));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingObjectHavingNumber() throws Exception {
|
|
|
@@ -501,13 +510,14 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("boost", 10)
|
|
|
.field("prefix", true)
|
|
|
.endObject();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("333"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(10));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("333"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(10));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingObjectHavingNULL() throws Exception {
|
|
|
@@ -516,11 +526,12 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("boost", 10)
|
|
|
.field("prefix", true)
|
|
|
.endObject();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
|
|
|
- Exception e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
- assertThat(e.getMessage(), containsString("category context must be a string, number or boolean"));
|
|
|
+ Exception e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
+ assertThat(e.getMessage(), containsString("category context must be a string, number or boolean"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingObjectArray() throws Exception {
|
|
|
@@ -536,16 +547,17 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("prefix", false)
|
|
|
.endObject()
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(2));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(2));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
- assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
- assertThat(internalQueryContexts.get(1).boost, equalTo(3));
|
|
|
- assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(2));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(2));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
+ assertThat(internalQueryContexts.get(1).boost, equalTo(3));
|
|
|
+ assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingMixedTypeObjectArray() throws Exception {
|
|
|
@@ -571,22 +583,23 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("prefix", false)
|
|
|
.endObject()
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(4));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(2));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
- assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
- assertThat(internalQueryContexts.get(1).boost, equalTo(3));
|
|
|
- assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(2).context, equalTo("true"));
|
|
|
- assertThat(internalQueryContexts.get(2).boost, equalTo(3));
|
|
|
- assertThat(internalQueryContexts.get(2).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(3).context, equalTo("333"));
|
|
|
- assertThat(internalQueryContexts.get(3).boost, equalTo(3));
|
|
|
- assertThat(internalQueryContexts.get(3).isPrefix, equalTo(false));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(4));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(2));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
+ assertThat(internalQueryContexts.get(1).boost, equalTo(3));
|
|
|
+ assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(2).context, equalTo("true"));
|
|
|
+ assertThat(internalQueryContexts.get(2).boost, equalTo(3));
|
|
|
+ assertThat(internalQueryContexts.get(2).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(3).context, equalTo("333"));
|
|
|
+ assertThat(internalQueryContexts.get(3).boost, equalTo(3));
|
|
|
+ assertThat(internalQueryContexts.get(3).isPrefix, equalTo(false));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingMixedTypeObjectArrayHavingNULL() throws Exception {
|
|
|
@@ -617,11 +630,12 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("prefix", false)
|
|
|
.endObject()
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
|
|
|
- XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
- assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be a string, number or boolean"));
|
|
|
+ XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
+ assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be a string, number or boolean"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -640,22 +654,23 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.field("prefix", true)
|
|
|
.endObject()
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
- List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
- assertThat(internalQueryContexts.size(), equalTo(4));
|
|
|
- assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
- assertThat(internalQueryContexts.get(0).boost, equalTo(2));
|
|
|
- assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
- assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
- assertThat(internalQueryContexts.get(1).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(2).context, equalTo("false"));
|
|
|
- assertThat(internalQueryContexts.get(2).boost, equalTo(1));
|
|
|
- assertThat(internalQueryContexts.get(2).isPrefix, equalTo(false));
|
|
|
- assertThat(internalQueryContexts.get(3).context, equalTo("333"));
|
|
|
- assertThat(internalQueryContexts.get(3).boost, equalTo(2));
|
|
|
- assertThat(internalQueryContexts.get(3).isPrefix, equalTo(true));
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ List<ContextMapping.InternalQueryContext> internalQueryContexts = mapping.parseQueryContext(parser);
|
|
|
+ assertThat(internalQueryContexts.size(), equalTo(4));
|
|
|
+ assertThat(internalQueryContexts.get(0).context, equalTo("context1"));
|
|
|
+ assertThat(internalQueryContexts.get(0).boost, equalTo(2));
|
|
|
+ assertThat(internalQueryContexts.get(0).isPrefix, equalTo(true));
|
|
|
+ assertThat(internalQueryContexts.get(1).context, equalTo("context2"));
|
|
|
+ assertThat(internalQueryContexts.get(1).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(1).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(2).context, equalTo("false"));
|
|
|
+ assertThat(internalQueryContexts.get(2).boost, equalTo(1));
|
|
|
+ assertThat(internalQueryContexts.get(2).isPrefix, equalTo(false));
|
|
|
+ assertThat(internalQueryContexts.get(3).context, equalTo("333"));
|
|
|
+ assertThat(internalQueryContexts.get(3).boost, equalTo(2));
|
|
|
+ assertThat(internalQueryContexts.get(3).isPrefix, equalTo(true));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testQueryContextParsingMixedHavingNULL() throws Exception {
|
|
|
@@ -674,11 +689,12 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase {
|
|
|
.endObject()
|
|
|
.nullValue()
|
|
|
.endArray();
|
|
|
- XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder));
|
|
|
- CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, BytesReference.bytes(builder))) {
|
|
|
+ CategoryContextMapping mapping = ContextBuilder.category("cat").build();
|
|
|
|
|
|
- XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
- assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be an object, string, number or boolean"));
|
|
|
+ XContentParseException e = expectThrows(XContentParseException.class, () -> mapping.parseQueryContext(parser));
|
|
|
+ assertThat(ExceptionsHelper.detailedMessage(e), containsString("category context must be an object, string, number or boolean"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void testUnknownQueryContextParsing() throws Exception {
|