TestsReflection.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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 ModelNotDecorated
  10. {
  11. public string Field1;
  12. public string Field2;
  13. public string Prop1 { get; set; }
  14. public string Prop2 { get; set; }
  15. }
  16. class ModelInclude
  17. {
  18. [Json] public string Field1;
  19. public string Field2;
  20. [Json] public string Prop1 { get; set; }
  21. public string Prop2 { get; set; }
  22. }
  23. class ModelExclude
  24. {
  25. public string Field1;
  26. public string Field2;
  27. public string Prop1 { get; set; }
  28. public string Prop2 { get; set; }
  29. [JsonExclude]
  30. public string Field3;
  31. [JsonExclude]
  32. public string Prop3 { get; set; }
  33. }
  34. class ModelRenamedMembers
  35. {
  36. [Json("Field1")] public string Field1;
  37. public string Field2;
  38. [Json("Prop1")] public string Prop1 { get; set; }
  39. public string Prop2 { get; set; }
  40. }
  41. [TestFixture]
  42. public class TestsReflection
  43. {
  44. [Test]
  45. public void ExcludeAttribute()
  46. {
  47. var m = new ModelExclude()
  48. {
  49. Field1 = "f1",
  50. Field2 = "f2",
  51. Field3 = "f3",
  52. Prop1 = "p1",
  53. Prop2 = "p2",
  54. Prop3 = "p3",
  55. };
  56. var json = Json.Format(m);
  57. Assert.Contains(json, "field1");
  58. Assert.Contains(json, "field2");
  59. Assert.DoesNotContain(json, "field3");
  60. Assert.Contains(json, "prop1");
  61. Assert.Contains(json, "prop2");
  62. Assert.DoesNotContain(json, "prop3");
  63. }
  64. [Test]
  65. public void NonDecorated()
  66. {
  67. var m = new ModelNotDecorated()
  68. {
  69. Field1 = "f1",
  70. Field2 = "f2",
  71. Prop1 = "p1",
  72. Prop2 = "p2",
  73. };
  74. var json = Json.Format(m);
  75. Assert.Contains(json, "field1");
  76. Assert.Contains(json, "field2");
  77. Assert.Contains(json, "prop1");
  78. Assert.Contains(json, "prop2");
  79. }
  80. [Test]
  81. public void Include()
  82. {
  83. var m = new ModelInclude()
  84. {
  85. Field1 = "f1",
  86. Field2 = "f2",
  87. Prop1 = "p1",
  88. Prop2 = "p2",
  89. };
  90. var json = Json.Format(m);
  91. Assert.Contains(json, "field1");
  92. Assert.DoesNotContain(json, "field2");
  93. Assert.Contains(json, "prop1");
  94. Assert.DoesNotContain(json, "prop2");
  95. }
  96. [Test]
  97. public void RenamedMembers()
  98. {
  99. var m = new ModelRenamedMembers()
  100. {
  101. Field1 = "f1",
  102. Field2 = "f2",
  103. Prop1 = "p1",
  104. Prop2 = "p2",
  105. };
  106. var json = Json.Format(m);
  107. Assert.Contains(json, "Field1");
  108. Assert.DoesNotContain(json, "field2");
  109. Assert.Contains(json, "Prop1");
  110. Assert.DoesNotContain(json, "prop2");
  111. }
  112. }
  113. }