Skip to content

DATAMONGO-1455, DATAMONGO-1456 - Add support for $caseSensitive and $diacriticSensitive to $text. #375

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Use static imports for org.junit.Assert and org.hamcrest.core.
  • Loading branch information
christophstrobl committed Jul 11, 2016
commit 1e54ee55c7c13c499d8e8a5a693233f386eddd80
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
*/
package org.springframework.data.mongodb.core.query;

import org.hamcrest.core.IsEqual;
import org.junit.Assert;
import static org.hamcrest.core.IsEqual.*;
import static org.junit.Assert.*;

import org.junit.Test;
import org.springframework.data.mongodb.core.DBObjectTestUtils;

Expand All @@ -39,7 +40,7 @@ public class TextCriteriaUnitTests {
public void shouldNotHaveLanguageField() {

TextCriteria criteria = TextCriteria.forDefaultLanguage();
Assert.assertThat(criteria.getCriteriaObject(), IsEqual.equalTo(searchObject("{ }")));
assertThat(criteria.getCriteriaObject(), equalTo(searchObject("{ }")));
}

/**
Expand All @@ -49,7 +50,7 @@ public void shouldNotHaveLanguageField() {
public void shouldNotHaveLanguageForNonDefaultLanguageField() {

TextCriteria criteria = TextCriteria.forLanguage("spanish");
Assert.assertThat(criteria.getCriteriaObject(), IsEqual.equalTo(searchObject("{ \"$language\" : \"spanish\" }")));
assertThat(criteria.getCriteriaObject(), equalTo(searchObject("{ \"$language\" : \"spanish\" }")));
}

/**
Expand All @@ -59,7 +60,7 @@ public void shouldNotHaveLanguageForNonDefaultLanguageField() {
public void shouldCreateSearchFieldForSingleTermCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().matching("cake");
Assert.assertThat(criteria.getCriteriaObject(), IsEqual.equalTo(searchObject("{ \"$search\" : \"cake\" }")));
assertThat(criteria.getCriteriaObject(), equalTo(searchObject("{ \"$search\" : \"cake\" }")));
}

/**
Expand All @@ -69,8 +70,7 @@ public void shouldCreateSearchFieldForSingleTermCorrectly() {
public void shouldCreateSearchFieldCorrectlyForMultipleTermsCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().matchingAny("bake", "coffee", "cake");
Assert.assertThat(criteria.getCriteriaObject(),
IsEqual.equalTo(searchObject("{ \"$search\" : \"bake coffee cake\" }")));
assertThat(criteria.getCriteriaObject(), equalTo(searchObject("{ \"$search\" : \"bake coffee cake\" }")));
}

/**
Expand All @@ -80,8 +80,8 @@ public void shouldCreateSearchFieldCorrectlyForMultipleTermsCorrectly() {
public void shouldCreateSearchFieldForPhraseCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().matchingPhrase("coffee cake");
Assert.assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
IsEqual.<DBObject> equalTo(new BasicDBObject("$search", "\"coffee cake\"")));
assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
equalTo((DBObject) new BasicDBObject("$search", "\"coffee cake\"")));
}

/**
Expand All @@ -91,7 +91,7 @@ public void shouldCreateSearchFieldForPhraseCorrectly() {
public void shouldCreateNotFieldCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().notMatching("cake");
Assert.assertThat(criteria.getCriteriaObject(), IsEqual.equalTo(searchObject("{ \"$search\" : \"-cake\" }")));
assertThat(criteria.getCriteriaObject(), equalTo(searchObject("{ \"$search\" : \"-cake\" }")));
}

/**
Expand All @@ -101,8 +101,7 @@ public void shouldCreateNotFieldCorrectly() {
public void shouldCreateSearchFieldCorrectlyForNotMultipleTermsCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().notMatchingAny("bake", "coffee", "cake");
Assert.assertThat(criteria.getCriteriaObject(),
IsEqual.equalTo(searchObject("{ \"$search\" : \"-bake -coffee -cake\" }")));
assertThat(criteria.getCriteriaObject(), equalTo(searchObject("{ \"$search\" : \"-bake -coffee -cake\" }")));
}

/**
Expand All @@ -112,8 +111,8 @@ public void shouldCreateSearchFieldCorrectlyForNotMultipleTermsCorrectly() {
public void shouldCreateSearchFieldForNotPhraseCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().notMatchingPhrase("coffee cake");
Assert.assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
IsEqual.<DBObject> equalTo(new BasicDBObject("$search", "-\"coffee cake\"")));
assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
equalTo((DBObject) new BasicDBObject("$search", "-\"coffee cake\"")));
}

/**
Expand All @@ -123,8 +122,8 @@ public void shouldCreateSearchFieldForNotPhraseCorrectly() {
public void caseSensitiveOperatorShouldBeSetCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().matching("coffee").caseSensitive(true);
Assert.assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"), IsEqual
.<DBObject> equalTo(new BasicDBObjectBuilder().add("$search", "coffee").add("$caseSensitive", true).get()));
assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
equalTo(new BasicDBObjectBuilder().add("$search", "coffee").add("$caseSensitive", true).get()));
}

/**
Expand All @@ -134,9 +133,8 @@ public void caseSensitiveOperatorShouldBeSetCorrectly() {
public void diacriticSensitiveOperatorShouldBeSetCorrectly() {

TextCriteria criteria = TextCriteria.forDefaultLanguage().matching("coffee").diacriticSensitive(true);
Assert.assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
IsEqual.<DBObject> equalTo(
new BasicDBObjectBuilder().add("$search", "coffee").add("$diacriticSensitive", true).get()));
assertThat(DBObjectTestUtils.getAsDBObject(criteria.getCriteriaObject(), "$text"),
equalTo((DBObject) new BasicDBObjectBuilder().add("$search", "coffee").add("$diacriticSensitive", true).get()));
}

private DBObject searchObject(String json) {
Expand Down