Skip to content

Commit

Permalink
Added Test for IEQUAL operator to support case insensitive searches
Browse files Browse the repository at this point in the history
  • Loading branch information
Nbagga14 committed Sep 30, 2024
1 parent 4e434e8 commit 675a883
Showing 1 changed file with 85 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,91 @@ public void testGetQueryBuilderFromCriterionEqualsValues() {
Assert.assertEquals(result.toString(), expected);
}

@Test
public void testGetQueryBuilderFromCriterionIEqualValues() { //Test case insensitive searches and special characters

final Criterion singleValueCriterion =
new Criterion()
.setField("myTestField")
.setCondition(Condition.IEQUAL)
.setValues(new StringArray(ImmutableList.of("value@!1")));

QueryBuilder result =
ESUtils.getQueryBuilderFromCriterion(
singleValueCriterion,
false,
new HashMap<>(),
mock(OperationContext.class),
QueryFilterRewriteChain.EMPTY);

String expected =
"{\n"
+ " \"bool\" : {\n"
+ " \"should\" : [\n"
+ " {\n"
+ " \"term\" : {\n"
+ " \"myTestField.keyword\" : {\n"
+ " \"value\" : \"value@!1\",\n"
+ " \"case_insensitive\" : true,\n"
+ " \"boost\" : 1.0\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " ],\n"
+ " \"adjust_pure_negative\" : true,\n"
+ " \"boost\" : 1.0,\n"
+ " \"_name\" : \"myTestField\"\n"
+ " }\n"
+ "}";

final Criterion multiValueCriterion =
new Criterion()
.setField("myTestField")
.setCondition(Condition.IEQUAL)
.setValues(new StringArray(ImmutableList.of("value@!1", "value@!2")));

result =
ESUtils.getQueryBuilderFromCriterion(
multiValueCriterion,
false,
new HashMap<>(),
mock(OperationContext.class),
QueryFilterRewriteChain.EMPTY);

expected =
"{\n"
+ " \"bool\" : {\n"
+ " \"should\" : [\n"
+ " {\n"
+ " \"term\" : {\n"
+ " \"myTestField.keyword\" : {\n"
+ " \"value\" : \"value@!1\",\n"
+ " \"case_insensitive\" : true,\n"
+ " \"boost\" : 1.0\n"
+ " }\n"
+ " }\n"
+ " },\n"
+ " {\n"
+ " \"term\" : {\n"
+ " \"myTestField.keyword\" : {\n"
+ " \"value\" : \"value@!2\",\n"
+ " \"case_insensitive\" : true,\n"
+ " \"boost\" : 1.0\n"
+ " }\n"
+ " }\n"
+ " }\n"
+ " ],\n"
+ " \"adjust_pure_negative\" : true,\n"
+ " \"boost\" : 1.0,\n"
+ " \"_name\" : \"myTestField\"\n"
+ " }\n"
+ "}";

Assert.assertEquals(result.toString(), expected);


}

@Test
public void testGetQueryBuilderFromCriterionContain() {
final Criterion singleValueCriterion =
Expand Down

0 comments on commit 675a883

Please sign in to comment.