ObjectExtensionTests.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net;
  4. using System.Net.Http;
  5. using System.Text.Encodings.Web;
  6. using System.Text.Json;
  7. using System.Threading.Tasks;
  8. using Masuit.Tools.Systems;
  9. using Xunit;
  10. namespace Masuit.Tools.Core.Test.AspNetCore
  11. {
  12. public class ObjectExtensionTests : TestBase
  13. {
  14. [Fact]
  15. public void ToJsonTest()
  16. {
  17. var obj = new
  18. {
  19. Id = 1,
  20. name = "van",
  21. addressInfo = new
  22. {
  23. street = "123 Main St",
  24. city = "zcvz",
  25. },
  26. remarks = new List<string> { "Deep Dark Fantastic", "爱玩游戏♂" },
  27. };
  28. var json = obj.ToJson();
  29. Assert.Equal(
  30. "{\"Id\":1,\"name\":\"van\",\"addressInfo\":{\"street\":\"123 Main St\",\"city\":\"zcvz\"},\"remarks\":[\"Deep Dark Fantastic\",\"爱玩游戏\u2642\"]}",
  31. json);
  32. }
  33. [Fact]
  34. public void ToJsonIgnoreNullTest()
  35. {
  36. var obj = new People
  37. {
  38. Name = "van",
  39. Age = 52,
  40. };
  41. var json = obj.ToJsonIgnoreNull();
  42. Assert.Equal(
  43. "{\"Name\":\"van\",\"Age\":52}",
  44. json);
  45. }
  46. [Fact]
  47. public void FromObjectTest()
  48. {
  49. var json = "{\"Name\":\"van\",\"Age\":52}";
  50. var obj = json.ToObject<People>();
  51. Assert.Equal(
  52. "van",
  53. obj.Name);
  54. }
  55. [Fact]
  56. public void SerializeSortByNameTest()
  57. {
  58. var obj = new People
  59. {
  60. Name = "van",
  61. Age = 52,
  62. };
  63. var json = obj.ToJson(new JsonSerializerOptions
  64. {
  65. Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
  66. TypeInfoResolver = new SerializeSortByNameResolver()
  67. });
  68. Assert.Equal(
  69. "{\"Age\":52,\"Name\":\"van\"}",
  70. json);
  71. }
  72. private class People
  73. {
  74. public string Name { get; set; }
  75. public int Age { get; set; }
  76. }
  77. }
  78. }