TestNullableTypes.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using PetaTest;
  6. using PetaJson;
  7. namespace TestCases
  8. {
  9. class NullableContainer
  10. {
  11. public int? Field;
  12. public int? Prop { get; set; }
  13. }
  14. [TestFixture]
  15. public class TestNullableTypes
  16. {
  17. [Test]
  18. public void TestNull()
  19. {
  20. var nc = new NullableContainer();
  21. var json = Json.Format(nc);
  22. Console.WriteLine(json);
  23. Assert.Contains(json, "null");
  24. var nc2 = Json.Parse<NullableContainer>(json);
  25. Assert.IsNull(nc2.Field);
  26. Assert.IsNull(nc2.Prop);
  27. }
  28. [Test]
  29. public void TestNotNull()
  30. {
  31. var nc = new NullableContainer()
  32. {
  33. Field = 23,
  34. Prop = 24,
  35. };
  36. var json = Json.Format(nc);
  37. Console.WriteLine(json);
  38. Assert.DoesNotContain(json, "null");
  39. var nc2 = Json.Parse<NullableContainer>(json);
  40. Assert.AreEqual(nc2.Field.Value, 23);
  41. Assert.AreEqual(nc2.Prop.Value, 24);
  42. }
  43. }
  44. }