Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 11b26f4

Browse files
committed
Add new Custom DateTime Serialization test
1 parent 15c834a commit 11b26f4

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

tests/ServiceStack.Text.Tests/JsonTests/CustomRawSerializerTests.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,43 @@ public void Can_serialize_custom_DateTime()
223223
JsConfig<DateTime>.SerializeFn = null;
224224
JsConfig.Reset();
225225
}
226+
227+
[Test]
228+
public void Can_serialize_custom_DateTime2()
229+
{
230+
JsConfig<DateTime>.SerializeFn = time =>
231+
{
232+
var x = new DateTime(time.Ticks, DateTimeKind.Unspecified).ToString("o");
233+
return x;
234+
};
235+
236+
JsConfig<DateTime>.DeSerializeFn = time =>
237+
{
238+
var x = DateTime.ParseExact(time, "o", null);
239+
return x;
240+
};
241+
242+
var dateTime = new DateTime(2015, 08, 12, 12, 12, 12, DateTimeKind.Unspecified);
243+
244+
var json = dateTime.ToJson();
245+
Assert.That(json, Is.EqualTo("\"2015-08-12T12:12:12.0000000\""));
246+
247+
var fromJson = json.FromJson<DateTime>();
248+
Assert.That(fromJson, Is.EqualTo(dateTime));
249+
250+
var dto = new Response
251+
{
252+
DateTime = dateTime,
253+
};
254+
255+
json = dto.ToJson();
256+
Assert.That(json, Is.EqualTo("{\"DateTime\":\"2015-08-12T12:12:12.0000000\"}"));
257+
Assert.That(json.FromJson<Response>().DateTime, Is.EqualTo(dateTime));
258+
259+
JsConfig<DateTime>.SerializeFn = null;
260+
JsConfig<DateTime>.DeSerializeFn = null;
261+
JsConfig.Reset();
262+
}
226263
}
227264

228265
public class OuterType

0 commit comments

Comments
 (0)