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

Commit f902fca

Browse files
committed
Add deserializing object tests
1 parent 8c7352b commit f902fca

File tree

1 file changed

+39
-13
lines changed

1 file changed

+39
-13
lines changed

tests/ServiceStack.Text.Tests/DynamicObjectTests.cs

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -319,25 +319,51 @@ public void Does_deserialize_int_objects()
319319
JsConfig.Reset();
320320
}
321321

322-
string SerializeObject(object value)
322+
string SerializeObject(object value) => new TypeWithObjects { Value = value }.ToJson();
323+
324+
private void SerializeObjectTypes()
323325
{
324-
return new TypeWithObjects { Value = value }.ToJson();
326+
Assert.That(SerializeObject((string) "a"), Is.EqualTo("{\"Value\":\"a\"}"));
327+
Assert.That(SerializeObject((byte) 1), Is.EqualTo("{\"Value\":1}"));
328+
Assert.That(SerializeObject((sbyte) 1), Is.EqualTo("{\"Value\":1}"));
329+
Assert.That(SerializeObject((short) 1), Is.EqualTo("{\"Value\":1}"));
330+
Assert.That(SerializeObject((ushort) 1), Is.EqualTo("{\"Value\":1}"));
331+
Assert.That(SerializeObject((int) 1), Is.EqualTo("{\"Value\":1}"));
332+
Assert.That(SerializeObject((uint) 1), Is.EqualTo("{\"Value\":1}"));
333+
Assert.That(SerializeObject((long) 1), Is.EqualTo("{\"Value\":1}"));
334+
Assert.That(SerializeObject((ulong) 1), Is.EqualTo("{\"Value\":1}"));
335+
Assert.That(SerializeObject((float) 1.1), Is.EqualTo("{\"Value\":1.1}"));
336+
Assert.That(SerializeObject((double) 1.1), Is.EqualTo("{\"Value\":1.1}"));
337+
Assert.That(SerializeObject((decimal) 1.1), Is.EqualTo("{\"Value\":1.1}"));
325338
}
326339

340+
object DeserializeObject(string json) => json.FromJson<TypeWithObjects>().Value;
341+
327342
[Test]
328343
public void Does_serialize_number_object_types()
329344
{
330-
Assert.That(SerializeObject((byte)1), Is.EqualTo("{\"Value\":1}"));
331-
Assert.That(SerializeObject((sbyte)1), Is.EqualTo("{\"Value\":1}"));
332-
Assert.That(SerializeObject((short)1), Is.EqualTo("{\"Value\":1}"));
333-
Assert.That(SerializeObject((ushort)1), Is.EqualTo("{\"Value\":1}"));
334-
Assert.That(SerializeObject((int)1), Is.EqualTo("{\"Value\":1}"));
335-
Assert.That(SerializeObject((uint)1), Is.EqualTo("{\"Value\":1}"));
336-
Assert.That(SerializeObject((long)1), Is.EqualTo("{\"Value\":1}"));
337-
Assert.That(SerializeObject((ulong)1), Is.EqualTo("{\"Value\":1}"));
338-
Assert.That(SerializeObject((float)1.1), Is.EqualTo("{\"Value\":1.1}"));
339-
Assert.That(SerializeObject((double)1.1), Is.EqualTo("{\"Value\":1.1}"));
340-
Assert.That(SerializeObject((decimal)1.1), Is.EqualTo("{\"Value\":1.1}"));
345+
SerializeObjectTypes();
346+
347+
Assert.That(DeserializeObject("{\"Value\":\"a\"}"), Is.EqualTo((string) "a"));
348+
Assert.That(DeserializeObject("{\"Value\":1}"), Is.EqualTo("1"));
349+
Assert.That(DeserializeObject("{\"Value\":1.1}"), Is.EqualTo("1.1"));
350+
Assert.That(DeserializeObject("{\"Value\":\"a\nb\"}"), Is.EqualTo("a\nb"));
351+
}
352+
353+
[Test]
354+
public void Does_serialize_number_object_types_with_JS_utils()
355+
{
356+
JS.Configure();
357+
358+
SerializeObjectTypes();
359+
360+
Assert.That(DeserializeObject("{\"Value\":\"a\"}"), Is.EqualTo("a"));
361+
Assert.That(DeserializeObject("{\"Value\":1}"), Is.EqualTo(1));
362+
Assert.That(DeserializeObject("{\"Value\":1.1}"), Is.EqualTo((double)1.1));
363+
Assert.That(DeserializeObject("{\"Value\":\"a\nb\"}"), Is.EqualTo("a\nb"));
364+
365+
JS.UnConfigure();
341366
}
367+
342368
}
343369
}

0 commit comments

Comments
 (0)