11using NUnit . Framework ;
22using Nest . Tests . MockData . Domain ;
33
4- namespace Nest . Tests . Unit . Search . Sort
5- {
4+ namespace Nest . Tests . Unit . Search . Sort {
65 [ TestFixture ]
7- public class SortTests
8- {
6+ public class SortTests {
97 [ Test ]
10- public void TestSort ( )
11- {
8+ public void TestSort ( ) {
129 var s = new SearchDescriptor < ElasticSearchProject > ( )
1310 . From ( 0 )
1411 . Size ( 10 )
15- . Sort ( sort => sort
16- . OnField ( e => e . Country )
17- . MissingLast ( )
18- . Descending ( )
19- ) ;
12+ . Sort ( sort => sort
13+ . OnField ( e => e . Country )
14+ . MissingLast ( )
15+ . Descending ( )
16+ ) ;
2017 var json = TestElasticClient . Serialize ( s ) ;
21- var expected = @" {
22- from: 0,
23- size: 10,
24- sort: {
25- country: {
26- missing: ""_last"",
27- order: ""desc""
28- }
29- }
30- }" ;
18+ var expected = @"
19+ {
20+ from: 0,
21+ size: 10,
22+ sort: {
23+ country: {
24+ missing: ""_last"",
25+ order: ""desc""
26+ }
27+ }
28+ }" ;
3129 Assert . True ( json . JsonEquals ( expected ) , json ) ;
3230 }
3331
3432 [ Test ]
35- public void TestSortOnSortField ( )
36- {
33+ public void TestSortOnSortField ( ) {
3734 var s = new SearchDescriptor < ElasticSearchProject > ( )
3835 . From ( 0 )
3936 . Size ( 10 )
40- . Sort ( sort => sort
41- . OnField ( e => e . Name )
42- . MissingLast ( )
43- . Descending ( )
44- ) ;
37+ . Sort ( sort => sort
38+ . OnField ( e => e . Name )
39+ . MissingLast ( )
40+ . Descending ( )
41+ ) ;
4542 var json = TestElasticClient . Serialize ( s ) ;
46- var expected = @" {
47- from: 0,
48- size: 10,
49- sort: {
50- ""name.sort"": {
51- missing: ""_last"",
52- order: ""desc""
53- }
54- }
55- }" ;
43+ var expected = @"
44+ {
45+ from: 0,
46+ size: 10,
47+ sort: {
48+ ""name.sort"": {
49+ missing: ""_last"",
50+ order: ""desc""
51+ }
52+ }
53+ }" ;
5654 Assert . True ( json . JsonEquals ( expected ) , json ) ;
5755 }
5856
5957 [ Test ]
60- public void TestSortAscending ( )
61- {
58+ public void TestSortAscending ( ) {
6259 var s = new SearchDescriptor < ElasticSearchProject > ( )
6360 . From ( 0 )
6461 . Size ( 10 )
6562 . SortAscending ( f => f . Country ) ;
6663 var json = TestElasticClient . Serialize ( s ) ;
67- var expected = @" {
68- from: 0,
69- size: 10,
70- sort: {
71- country : ""asc""
72- }
73- }" ;
64+ var expected = @"
65+ {
66+ from: 0,
67+ size: 10,
68+ sort: {
69+ country : ""asc""
70+ }
71+ }" ;
7472 Assert . True ( json . JsonEquals ( expected ) , json ) ;
7573 }
7674
7775 [ Test ]
78- public void TestSortDescending ( )
79- {
76+ public void TestSortDescending ( ) {
8077 var s = new SearchDescriptor < ElasticSearchProject > ( )
8178 . From ( 0 )
8279 . Size ( 10 )
8380 . SortDescending ( f => f . Country ) ;
8481 var json = TestElasticClient . Serialize ( s ) ;
85- var expected = @" {
86- from: 0,
87- size: 10,
88- sort: {
89- country : ""desc""
90- }
91- }" ;
82+ var expected = @"
83+ {
84+ from: 0,
85+ size: 10,
86+ sort: {
87+ country : ""desc""
88+ }
89+ }" ;
9290 Assert . True ( json . JsonEquals ( expected ) , json ) ;
9391 }
9492
9593 [ Test ]
96- public void TestSortAscendingOnSortField ( )
97- {
94+ public void TestSortAscendingOnSortField ( ) {
9895 var s = new SearchDescriptor < ElasticSearchProject > ( )
9996 . From ( 0 )
10097 . Size ( 10 )
10198 . SortAscending ( f => f . Name ) ;
10299 var json = TestElasticClient . Serialize ( s ) ;
103- var expected = @" {
104- from: 0,
105- size: 10,
106- sort: {
107- ""name.sort"" : ""asc""
108- }
109- }" ;
100+ var expected = @"
101+ {
102+ from: 0,
103+ size: 10,
104+ sort: {
105+ ""name.sort"" : ""asc""
106+ }
107+ }" ;
110108 Assert . True ( json . JsonEquals ( expected ) , json ) ;
111109 }
112110
113111 [ Test ]
114- public void TestSortDescendingOnSortField ( )
115- {
112+ public void TestSortDescendingOnSortField ( ) {
116113 var s = new SearchDescriptor < ElasticSearchProject > ( )
117114 . From ( 0 )
118115 . Size ( 10 )
119116 . SortDescending ( f => f . Name ) ;
120117 var json = TestElasticClient . Serialize ( s ) ;
121- var expected = @" {
122- from: 0,
123- size: 10,
124- sort: {
125- ""name.sort"" : ""desc""
126- }
127- }" ;
118+ var expected = @"
119+ {
120+ from: 0,
121+ size: 10,
122+ sort: {
123+ ""name.sort"" : ""desc""
124+ }
125+ }" ;
126+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
127+ }
128+
129+ [ Test ]
130+ public void TestSortGeo ( ) {
131+ var s = new SearchDescriptor < ElasticSearchProject > ( )
132+ . From ( 0 )
133+ . Size ( 10 )
134+ . SortGeoDistance ( sort => sort
135+ . OnField ( e => e . Origin )
136+ . MissingLast ( )
137+ . Descending ( )
138+ . PinTo ( 40 , - 70 )
139+ . Unit ( GeoUnit . km )
140+ ) ;
141+ var json = TestElasticClient . Serialize ( s ) ;
142+ var expected = @"
143+ {
144+ from: 0,
145+ size: 10,
146+ sort: {
147+ _geo_distance: {
148+ missing: ""_last"",
149+ order: ""desc"",
150+ ""origin"": ""40, -70"",
151+ unit: ""km""
152+ }
153+ }
154+ }" ;
155+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
156+ }
157+
158+ [ Test ]
159+ public void TestSortScript ( ) {
160+ var s = new SearchDescriptor < ElasticSearchProject > ( )
161+ . From ( 0 )
162+ . Size ( 10 )
163+ . SortScript ( sort => sort
164+ . MissingLast ( )
165+ . Descending ( )
166+ . Script ( "doc['field_name'].value * factor" )
167+ . Params ( p => p
168+ . Add ( "factor" , 1.1 )
169+ )
170+ . Type ( "number" )
171+ ) ;
172+ var json = TestElasticClient . Serialize ( s ) ;
173+ var expected = @"
174+ {
175+ from: 0,
176+ size: 10,
177+ sort: {
178+ _script: {
179+ missing: ""_last"",
180+ order: ""desc"",
181+ type: ""number"",
182+ script: ""doc['field_name'].value * factor"",
183+ params: {
184+ factor: 1.1
185+ }
186+ }
187+ }
188+ }" ;
189+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
190+ }
191+
192+ [ Test ]
193+ public void TestNestedFilter ( ) {
194+ var s = new SearchDescriptor < ElasticSearchProject > ( )
195+ . Sort ( sort => sort
196+ . OnField ( e => e . Id )
197+ . NestedFilter ( f => f . Term ( "name" , "value" ) )
198+ ) ;
199+ var json = TestElasticClient . Serialize ( s ) ;
200+ var expected = @"
201+ {
202+ ""sort"": {
203+ ""id"": {
204+ ""nested_filter"": {
205+ ""term"": {
206+ ""name"": ""value""
207+ }
208+ }
209+ }
210+ }
211+ }" ;
212+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
213+ }
214+
215+ [ Test ]
216+ public void TestNestedPath ( ) {
217+ var s = new SearchDescriptor < ElasticSearchProject > ( )
218+ . Sort ( sort => sort
219+ . OnField ( e => e . Id )
220+ . NestedPath ( "name" )
221+ ) ;
222+ var json = TestElasticClient . Serialize ( s ) ;
223+ var expected = @"
224+ {
225+ ""sort"": {
226+ ""id"": {
227+ ""nested_path"": ""name""
228+ }
229+ }
230+ }" ;
231+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
232+ }
233+
234+ [ Test ]
235+ public void TestNestedPathObject ( ) {
236+ var s = new SearchDescriptor < ElasticSearchProject > ( )
237+ . Sort ( sort => sort
238+ . OnField ( e => e . Id )
239+ . NestedPath ( f => f . Name )
240+ ) ;
241+ var json = TestElasticClient . Serialize ( s ) ;
242+ var expected = @"
243+ {
244+ ""sort"": {
245+ ""id"": {
246+ ""nested_path"": ""name""
247+ }
248+ }
249+ }" ;
128250 Assert . True ( json . JsonEquals ( expected ) , json ) ;
129251 }
130- [ Test ]
131- public void TestSortGeo ( )
132- {
133- var s = new SearchDescriptor < ElasticSearchProject > ( )
134- . From ( 0 )
135- . Size ( 10 )
136- . SortGeoDistance ( sort => sort
137- . OnField ( e => e . Origin )
138- . MissingLast ( )
139- . Descending ( )
140- . PinTo ( 40 , - 70 )
141- . Unit ( GeoUnit . km )
142- ) ;
143- var json = TestElasticClient . Serialize ( s ) ;
144- var expected = @" {
145- from: 0,
146- size: 10,
147- sort: {
148- _geo_distance: {
149- missing: ""_last"",
150- order: ""desc"",
151- ""origin"": ""40, -70"",
152- unit: ""km""
153- }
154- }
155- }" ;
156- Assert . True ( json . JsonEquals ( expected ) , json ) ;
157- }
158- [ Test ]
159- public void TestSortScript ( )
160- {
161- var s = new SearchDescriptor < ElasticSearchProject > ( )
162- . From ( 0 )
163- . Size ( 10 )
164- . SortScript ( sort => sort
165- . MissingLast ( )
166- . Descending ( )
167- . Script ( "doc['field_name'].value * factor" )
168- . Params ( p=> p
169- . Add ( "factor" , 1.1 )
170- )
171- . Type ( "number" )
172- ) ;
173- var json = TestElasticClient . Serialize ( s ) ;
174- var expected = @" {
175- from: 0,
176- size: 10,
177- sort: {
178- _script: {
179- missing: ""_last"",
180- order: ""desc"",
181- type: ""number"",
182- script: ""doc['field_name'].value * factor"",
183- params: {
184- factor: 1.1
185- }
186- }
187- }
188- }" ;
189- Assert . True ( json . JsonEquals ( expected ) , json ) ;
190- }
191252 }
192- }
253+ }
0 commit comments