Skip to content

Commit 6c1ba1f

Browse files
committed
Test for Github issue 3778
1 parent cb89735 commit 6c1ba1f

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System;
2+
using Elastic.Xunit.XunitPlumbing;
3+
using FluentAssertions;
4+
using Nest;
5+
using Newtonsoft.Json;
6+
using Tests.Core.ManagedElasticsearch.Clusters;
7+
8+
namespace Tests.Reproduce
9+
{
10+
public class GithubIssue3778 : IClusterFixture<WritableCluster>
11+
{
12+
private readonly WritableCluster _cluster;
13+
14+
public GithubIssue3778(WritableCluster cluster) => _cluster = cluster;
15+
16+
[I] public void ShouldSerializeAndDeserializeDateRange()
17+
{
18+
DateTimeOffset? startDate1 = Convert.ToDateTime("2019/01/01").Date;
19+
DateTimeOffset? endDate1 = Convert.ToDateTime("2019/04/01").Date;
20+
21+
var dt = new DateRange { GreaterThanOrEqualTo = startDate1, LessThanOrEqualTo = endDate1 };
22+
23+
var settings = new JsonSerializerSettings();
24+
settings.Converters.Add(new Nest.JsonNetSerializer.Converters.HandleNestTypesOnSourceJsonConverter(_cluster.Client.RequestResponseSerializer));
25+
26+
var serialized = JsonConvert.SerializeObject(dt, Formatting.Indented, settings);
27+
serialized.Equals(@"{
28+
""gt"": null,
29+
""gte"": ""2019-01-01T00:00:00+11:00"",
30+
""lt"": null,
31+
""lte"": ""2019-04-01T00:00:00+11:00""
32+
}");
33+
34+
var raw = @"{""gt"": null,""gte"": ""2019-01-01T00:00:00-06:00"",""lt"": null,""lte"": ""2019-04-01T00:00:00-05:00""}";
35+
var deserialized = JsonConvert.DeserializeObject<DateRange>(raw, settings);
36+
37+
deserialized.GreaterThan.Should().BeNull();
38+
deserialized.GreaterThanOrEqualTo.Should().Be(Convert.ToDateTime("2019-01-01T00:00:00-06:00"));
39+
deserialized.LessThan.Should().BeNull();
40+
deserialized.LessThanOrEqualTo.Should().Be(Convert.ToDateTime("2019-04-01T00:00:00-05:00"));
41+
}
42+
}
43+
}

0 commit comments

Comments
 (0)