1
1
/*
2
- * Copyright 2014 the original author or authors.
2
+ * Copyright 2014-2016 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
15
15
*/
16
16
package org .springframework .data .mongodb .core .query ;
17
17
18
+ import static org .hamcrest .core .IsEqual .*;
19
+
18
20
import org .bson .Document ;
19
21
import org .hamcrest .core .IsEqual ;
20
22
import org .junit .Assert ;
@@ -35,7 +37,7 @@ public class TextCriteriaUnitTests {
35
37
public void shouldNotHaveLanguageField () {
36
38
37
39
TextCriteria criteria = TextCriteria .forDefaultLanguage ();
38
- Assert .assertThat (criteria .getCriteriaObject (), IsEqual . equalTo (searchObject ("{ }" )));
40
+ Assert .assertThat (criteria .getCriteriaObject (), equalTo (searchObject ("{ }" )));
39
41
}
40
42
41
43
/**
@@ -45,7 +47,7 @@ public void shouldNotHaveLanguageField() {
45
47
public void shouldNotHaveLanguageForNonDefaultLanguageField () {
46
48
47
49
TextCriteria criteria = TextCriteria .forLanguage ("spanish" );
48
- Assert .assertThat (criteria .getCriteriaObject (), IsEqual . equalTo (searchObject ("{ \" $language\" : \" spanish\" }" )));
50
+ Assert .assertThat (criteria .getCriteriaObject (), equalTo (searchObject ("{ \" $language\" : \" spanish\" }" )));
49
51
}
50
52
51
53
/**
@@ -55,7 +57,7 @@ public void shouldNotHaveLanguageForNonDefaultLanguageField() {
55
57
public void shouldCreateSearchFieldForSingleTermCorrectly () {
56
58
57
59
TextCriteria criteria = TextCriteria .forDefaultLanguage ().matching ("cake" );
58
- Assert .assertThat (criteria .getCriteriaObject (), IsEqual . equalTo (searchObject ("{ \" $search\" : \" cake\" }" )));
60
+ Assert .assertThat (criteria .getCriteriaObject (), equalTo (searchObject ("{ \" $search\" : \" cake\" }" )));
59
61
}
60
62
61
63
/**
@@ -65,8 +67,7 @@ public void shouldCreateSearchFieldForSingleTermCorrectly() {
65
67
public void shouldCreateSearchFieldCorrectlyForMultipleTermsCorrectly () {
66
68
67
69
TextCriteria criteria = TextCriteria .forDefaultLanguage ().matchingAny ("bake" , "coffee" , "cake" );
68
- Assert .assertThat (criteria .getCriteriaObject (),
69
- IsEqual .equalTo (searchObject ("{ \" $search\" : \" bake coffee cake\" }" )));
70
+ Assert .assertThat (criteria .getCriteriaObject (), equalTo (searchObject ("{ \" $search\" : \" bake coffee cake\" }" )));
70
71
}
71
72
72
73
/**
@@ -87,7 +88,7 @@ public void shouldCreateSearchFieldForPhraseCorrectly() {
87
88
public void shouldCreateNotFieldCorrectly () {
88
89
89
90
TextCriteria criteria = TextCriteria .forDefaultLanguage ().notMatching ("cake" );
90
- Assert .assertThat (criteria .getCriteriaObject (), IsEqual . equalTo (searchObject ("{ \" $search\" : \" -cake\" }" )));
91
+ Assert .assertThat (criteria .getCriteriaObject (), equalTo (searchObject ("{ \" $search\" : \" -cake\" }" )));
91
92
}
92
93
93
94
/**
@@ -97,8 +98,7 @@ public void shouldCreateNotFieldCorrectly() {
97
98
public void shouldCreateSearchFieldCorrectlyForNotMultipleTermsCorrectly () {
98
99
99
100
TextCriteria criteria = TextCriteria .forDefaultLanguage ().notMatchingAny ("bake" , "coffee" , "cake" );
100
- Assert .assertThat (criteria .getCriteriaObject (),
101
- IsEqual .equalTo (searchObject ("{ \" $search\" : \" -bake -coffee -cake\" }" )));
101
+ Assert .assertThat (criteria .getCriteriaObject (), equalTo (searchObject ("{ \" $search\" : \" -bake -coffee -cake\" }" )));
102
102
}
103
103
104
104
/**
@@ -109,7 +109,30 @@ public void shouldCreateSearchFieldForNotPhraseCorrectly() {
109
109
110
110
TextCriteria criteria = TextCriteria .forDefaultLanguage ().notMatchingPhrase ("coffee cake" );
111
111
Assert .assertThat (DBObjectTestUtils .getAsDocument (criteria .getCriteriaObject (), "$text" ),
112
- IsEqual .<Document > equalTo (new Document ("$search" , "-\" coffee cake\" " )));
112
+ equalTo (new Document ("$search" , "-\" coffee cake\" " )));
113
+ }
114
+
115
+ /**
116
+ * @see DATAMONGO-1455
117
+ */
118
+ @ Test
119
+ public void caseSensitiveOperatorShouldBeSetCorrectly () {
120
+
121
+ TextCriteria criteria = TextCriteria .forDefaultLanguage ().matching ("coffee" ).caseSensitive (true );
122
+
123
+ assertThat (DBObjectTestUtils .getAsDocument (criteria .getCriteriaObject (), "$text" ),
124
+ equalTo (Document .parse ("{ \" $search\" : \" coffee\" , \" $caseSensitive\" : true }" )));
125
+ }
126
+
127
+ /**
128
+ * @see DATAMONGO-1456
129
+ */
130
+ @ Test
131
+ public void diacriticSensitiveOperatorShouldBeSetCorrectly () {
132
+
133
+ TextCriteria criteria = TextCriteria .forDefaultLanguage ().matching ("coffee" ).diacriticSensitive (true );
134
+ assertThat (DBObjectTestUtils .getAsDocument (criteria .getCriteriaObject (), "$text" ),
135
+ equalTo (Document .parse ("{ \" $search\" : \" coffee\" , \" $diacriticSensitive\" : true }" )));
113
136
}
114
137
115
138
private Document searchObject (String json ) {
0 commit comments