Skip to content

Commit b46bf09

Browse files
committed
added an example of a patched fluent descriptor for #1396
1 parent cac5478 commit b46bf09

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

src/Tests/Nest.Tests.Unit/Reproduce/Reproduce1396Tests.cs

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,20 @@ public class MyTermsAggregationFix : TermsAggregator
3737
public new List<TermOrder> TermsOrder { get; set; }
3838
}
3939

40+
public class MyTermsAggregationsFluentFix<T> : TermsAggregationDescriptor<T>
41+
where T : class
42+
{
43+
[JsonProperty("order")]
44+
internal List<TermOrder> TermsOrder { get; set; }
45+
46+
public MyTermsAggregationsFluentFix<T> PatchedOrder(List<TermOrder> order)
47+
{
48+
this.TermsOrder = order;
49+
return this;
50+
}
51+
52+
}
53+
4054

4155
[Test]
4256
public void FixDslThroughCustomInterfaceImplementation()
@@ -63,8 +77,28 @@ public void FixDslThroughCustomInterfaceImplementation()
6377
}
6478
}
6579
};
66-
var serialized = _client.Serializer.Serialize(search).Utf8String();
67-
this.JsonEquals(search, MethodBase.GetCurrentMethod());
80+
this.JsonEquals(search, MethodBase.GetCurrentMethod(), "PatchedTermsAggSort");
81+
}
82+
83+
[Test]
84+
public void FixDslThroughCustomInterfaceImplementationUsingFluent()
85+
{
86+
var order = new List<TermOrder>()
87+
{
88+
new TermOrder { Key = "x", Order = SortOrder.Ascending},
89+
new TermOrder { Key = "y", Order = SortOrder.Descending}
90+
};
91+
var search = new SearchDescriptor<ElasticsearchProject>()
92+
.Aggregations(aggs=>aggs
93+
.Terms("my_terms_agg", t=> new MyTermsAggregationsFluentFix<ElasticsearchProject>()
94+
.PatchedOrder(order)
95+
.Field("x")
96+
)
97+
)
98+
99+
;
100+
this.JsonEquals(search, MethodBase.GetCurrentMethod(), "PatchedTermsAggSort");
68101
}
102+
69103
}
70104
}

0 commit comments

Comments
 (0)