Skip to content

Commit 4db9484

Browse files
committed
added unit test to show script sort usage fix #291
1 parent 30e5a5d commit 4db9484

File tree

2 files changed

+146
-115
lines changed

2 files changed

+146
-115
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"from": 0,
3+
"size": 10,
4+
"sort": {
5+
"_script": {
6+
"order": "asc",
7+
"type": "number",
8+
"script": "(doc['_id'].stringValue + salt).hashCode()",
9+
"params": {
10+
"salt": "some_random_string"
11+
}
12+
}
13+
}
14+
}
Lines changed: 132 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
1-
using NUnit.Framework;
1+
using System.Reflection;
2+
using NUnit.Framework;
23
using Nest.Tests.MockData.Domain;
34

45
namespace Nest.Tests.Unit.Search.Sort
56
{
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 = @" {
2223
from: 0,
2324
size: 10,
2425
sort: {
@@ -28,22 +29,22 @@ public void TestSort()
2829
}
2930
}
3031
}";
31-
Assert.True(json.JsonEquals(expected), json);
32-
}
32+
Assert.True(json.JsonEquals(expected), json);
33+
}
3334

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 = @" {
4748
from: 0,
4849
size: 10,
4950
sort: {
@@ -53,95 +54,95 @@ public void TestSortOnSortField()
5354
}
5455
}
5556
}";
56-
Assert.True(json.JsonEquals(expected), json);
57-
}
57+
Assert.True(json.JsonEquals(expected), json);
58+
}
5859

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 = @" {
6869
from: 0,
6970
size: 10,
7071
sort: {
7172
country : ""asc""
7273
}
7374
}";
74-
Assert.True(json.JsonEquals(expected), json);
75-
}
75+
Assert.True(json.JsonEquals(expected), json);
76+
}
7677

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 = @" {
8687
from: 0,
8788
size: 10,
8889
sort: {
8990
country : ""desc""
9091
}
9192
}";
92-
Assert.True(json.JsonEquals(expected), json);
93-
}
93+
Assert.True(json.JsonEquals(expected), json);
94+
}
9495

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 = @" {
104105
from: 0,
105106
size: 10,
106107
sort: {
107108
""name.sort"" : ""asc""
108109
}
109110
}";
110-
Assert.True(json.JsonEquals(expected), json);
111-
}
111+
Assert.True(json.JsonEquals(expected), json);
112+
}
112113

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 = @" {
122123
from: 0,
123124
size: 10,
124125
sort: {
125126
""name.sort"" : ""desc""
126127
}
127128
}";
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 = @" {
145146
from: 0,
146147
size: 10,
147148
sort: {
@@ -153,25 +154,25 @@ public void TestSortGeo()
153154
}
154155
}
155156
}";
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 = @" {
175176
from: 0,
176177
size: 10,
177178
sort: {
@@ -186,7 +187,23 @@ public void TestSortScript()
186187
}
187188
}
188189
}";
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+
}
192209
}

0 commit comments

Comments
 (0)