1
- using NUnit . Framework ;
1
+ using System . Reflection ;
2
+ using NUnit . Framework ;
2
3
using Nest . Tests . MockData . Domain ;
3
4
4
5
namespace Nest . Tests . Unit . Search . Sort
5
6
{
6
- [ TestFixture ]
7
- public class SortTests
8
- {
9
- [ Test ]
10
- public void TestSort ( )
11
- {
12
- var s = new SearchDescriptor < ElasticSearchProject > ( )
13
- . From ( 0 )
14
- . Size ( 10 )
15
- . Sort ( sort => sort
16
- . OnField ( e => e . Country )
17
- . MissingLast ( )
18
- . Descending ( )
19
- ) ;
20
- var json = TestElasticClient . Serialize ( s ) ;
21
- var expected = @" {
7
+ [ TestFixture ]
8
+ public class SortTests : BaseJsonTests
9
+ {
10
+ [ Test ]
11
+ public void TestSort ( )
12
+ {
13
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
14
+ . From ( 0 )
15
+ . Size ( 10 )
16
+ . Sort ( sort => sort
17
+ . OnField ( e => e . Country )
18
+ . MissingLast ( )
19
+ . Descending ( )
20
+ ) ;
21
+ var json = TestElasticClient . Serialize ( s ) ;
22
+ var expected = @" {
22
23
from: 0,
23
24
size: 10,
24
25
sort: {
@@ -28,22 +29,22 @@ public void TestSort()
28
29
}
29
30
}
30
31
}" ;
31
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
32
- }
32
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
33
+ }
33
34
34
- [ Test ]
35
- public void TestSortOnSortField ( )
36
- {
37
- var s = new SearchDescriptor < ElasticSearchProject > ( )
38
- . From ( 0 )
39
- . Size ( 10 )
40
- . Sort ( sort => sort
41
- . OnField ( e => e . Name )
42
- . MissingLast ( )
43
- . Descending ( )
44
- ) ;
45
- var json = TestElasticClient . Serialize ( s ) ;
46
- var expected = @" {
35
+ [ Test ]
36
+ public void TestSortOnSortField ( )
37
+ {
38
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
39
+ . From ( 0 )
40
+ . Size ( 10 )
41
+ . Sort ( sort => sort
42
+ . OnField ( e => e . Name )
43
+ . MissingLast ( )
44
+ . Descending ( )
45
+ ) ;
46
+ var json = TestElasticClient . Serialize ( s ) ;
47
+ var expected = @" {
47
48
from: 0,
48
49
size: 10,
49
50
sort: {
@@ -53,95 +54,95 @@ public void TestSortOnSortField()
53
54
}
54
55
}
55
56
}" ;
56
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
57
- }
57
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
58
+ }
58
59
59
- [ Test ]
60
- public void TestSortAscending ( )
61
- {
62
- var s = new SearchDescriptor < ElasticSearchProject > ( )
63
- . From ( 0 )
64
- . Size ( 10 )
65
- . SortAscending ( f => f . Country ) ;
66
- var json = TestElasticClient . Serialize ( s ) ;
67
- var expected = @" {
60
+ [ Test ]
61
+ public void TestSortAscending ( )
62
+ {
63
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
64
+ . From ( 0 )
65
+ . Size ( 10 )
66
+ . SortAscending ( f => f . Country ) ;
67
+ var json = TestElasticClient . Serialize ( s ) ;
68
+ var expected = @" {
68
69
from: 0,
69
70
size: 10,
70
71
sort: {
71
72
country : ""asc""
72
73
}
73
74
}" ;
74
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
75
- }
75
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
76
+ }
76
77
77
- [ Test ]
78
- public void TestSortDescending ( )
79
- {
80
- var s = new SearchDescriptor < ElasticSearchProject > ( )
81
- . From ( 0 )
82
- . Size ( 10 )
83
- . SortDescending ( f => f . Country ) ;
84
- var json = TestElasticClient . Serialize ( s ) ;
85
- var expected = @" {
78
+ [ Test ]
79
+ public void TestSortDescending ( )
80
+ {
81
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
82
+ . From ( 0 )
83
+ . Size ( 10 )
84
+ . SortDescending ( f => f . Country ) ;
85
+ var json = TestElasticClient . Serialize ( s ) ;
86
+ var expected = @" {
86
87
from: 0,
87
88
size: 10,
88
89
sort: {
89
90
country : ""desc""
90
91
}
91
92
}" ;
92
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
93
- }
93
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
94
+ }
94
95
95
- [ Test ]
96
- public void TestSortAscendingOnSortField ( )
97
- {
98
- var s = new SearchDescriptor < ElasticSearchProject > ( )
99
- . From ( 0 )
100
- . Size ( 10 )
101
- . SortAscending ( f => f . Name ) ;
102
- var json = TestElasticClient . Serialize ( s ) ;
103
- var expected = @" {
96
+ [ Test ]
97
+ public void TestSortAscendingOnSortField ( )
98
+ {
99
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
100
+ . From ( 0 )
101
+ . Size ( 10 )
102
+ . SortAscending ( f => f . Name ) ;
103
+ var json = TestElasticClient . Serialize ( s ) ;
104
+ var expected = @" {
104
105
from: 0,
105
106
size: 10,
106
107
sort: {
107
108
""name.sort"" : ""asc""
108
109
}
109
110
}" ;
110
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
111
- }
111
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
112
+ }
112
113
113
- [ Test ]
114
- public void TestSortDescendingOnSortField ( )
115
- {
116
- var s = new SearchDescriptor < ElasticSearchProject > ( )
117
- . From ( 0 )
118
- . Size ( 10 )
119
- . SortDescending ( f => f . Name ) ;
120
- var json = TestElasticClient . Serialize ( s ) ;
121
- var expected = @" {
114
+ [ Test ]
115
+ public void TestSortDescendingOnSortField ( )
116
+ {
117
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
118
+ . From ( 0 )
119
+ . Size ( 10 )
120
+ . SortDescending ( f => f . Name ) ;
121
+ var json = TestElasticClient . Serialize ( s ) ;
122
+ var expected = @" {
122
123
from: 0,
123
124
size: 10,
124
125
sort: {
125
126
""name.sort"" : ""desc""
126
127
}
127
128
}" ;
128
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
129
- }
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 = @" {
129
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
130
+ }
131
+ [ Test ]
132
+ public void TestSortGeo ( )
133
+ {
134
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
135
+ . From ( 0 )
136
+ . Size ( 10 )
137
+ . SortGeoDistance ( sort => sort
138
+ . OnField ( e => e . Origin )
139
+ . MissingLast ( )
140
+ . Descending ( )
141
+ . PinTo ( 40 , - 70 )
142
+ . Unit ( GeoUnit . km )
143
+ ) ;
144
+ var json = TestElasticClient . Serialize ( s ) ;
145
+ var expected = @" {
145
146
from: 0,
146
147
size: 10,
147
148
sort: {
@@ -153,25 +154,25 @@ public void TestSortGeo()
153
154
}
154
155
}
155
156
}" ;
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 = @" {
157
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
158
+ }
159
+ [ Test ]
160
+ public void TestSortScript ( )
161
+ {
162
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
163
+ . From ( 0 )
164
+ . Size ( 10 )
165
+ . SortScript ( sort => sort
166
+ . MissingLast ( )
167
+ . Descending ( )
168
+ . Script ( "doc['field_name'].value * factor" )
169
+ . Params ( p => p
170
+ . Add ( "factor" , 1.1 )
171
+ )
172
+ . Type ( "number" )
173
+ ) ;
174
+ var json = TestElasticClient . Serialize ( s ) ;
175
+ var expected = @" {
175
176
from: 0,
176
177
size: 10,
177
178
sort: {
@@ -186,7 +187,23 @@ public void TestSortScript()
186
187
}
187
188
}
188
189
}" ;
189
- Assert . True ( json . JsonEquals ( expected ) , json ) ;
190
- }
191
- }
190
+ Assert . True ( json . JsonEquals ( expected ) , json ) ;
191
+ }
192
+ [ Test ]
193
+ public void RandomScriptSort ( )
194
+ {
195
+ var s = new SearchDescriptor < ElasticSearchProject > ( )
196
+ . From ( 0 )
197
+ . Size ( 10 )
198
+ . SortScript ( sort => sort
199
+ . Ascending ( )
200
+ . Script ( "(doc['_id'].stringValue + salt).hashCode()" )
201
+ . Params ( p => p
202
+ . Add ( "salt" , "some_random_string" )
203
+ )
204
+ . Type ( "number" )
205
+ ) ;
206
+ this . JsonEquals ( s , MethodInfo . GetCurrentMethod ( ) ) ;
207
+ }
208
+ }
192
209
}
0 commit comments