Пример #1
0
        public void ExtensionDataTest()
        {
            string json = @"{
  ""Ints"": [1,2,3],
  ""Ignored"": [1,2,3],
  ""Readonly"": ""Readonly"",
  ""Name"": ""Actually set!"",
  ""CustomName"": ""Wrong name!"",
  ""GetPrivate"": true,
  ""GetOnly"": true,
  ""NewValueSimple"": true,
  ""NewValueComplex"": [1,2,3]
}";

            ExtensionDataTestClass c = JsonConvert.DeserializeObject <ExtensionDataTestClass>(json);

            Assert.AreEqual("Actually set!", c.Name);
            Assert.AreEqual(4, c.Ints.Count);

            Assert.AreEqual("Readonly", (string)c.ExtensionData["Readonly"]);
            Assert.AreEqual("Wrong name!", (string)c.ExtensionData["CustomName"]);
            Assert.AreEqual(true, (bool)c.ExtensionData["GetPrivate"]);
            Assert.AreEqual(true, (bool)c.ExtensionData["GetOnly"]);
            Assert.AreEqual(true, (bool)c.ExtensionData["NewValueSimple"]);
            Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["NewValueComplex"]));
            Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["Ignored"]));

            Assert.AreEqual(7, c.ExtensionData.Count);
        }
Пример #2
0
        public void Test()
        {
            ExtensionDataTestClass a = JsonConvert.DeserializeObject <ExtensionDataTestClass>("{\"E\":null}", new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore,
            });

            Assert.IsNull(a.PropertyBag);
        }
Пример #3
0
        public void ExtensionDataTest_SerializeWithNamingStrategy_Enabled()
        {
            ExtensionDataTestClass c = new ExtensionDataTestClass()
            {
                ExtensionData = new Dictionary <string, JToken>
                {
                    ["TestValue1"]       = 1,
                    ["alreadyCamelCase"] = new JObject {
                        ["NotProcessed"] = true
                    }
                }
            };

            string json = JsonConvert.SerializeObject(
                c,
                new JsonSerializerSettings
            {
                ContractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy
                    {
                        ProcessExtensionDataNames = true
                    }
                },
                Formatting = Formatting.Indented
            }
                );

            StringAssert.AreEqual(
                @"{
  ""readonly"": ""Readonly"",
  ""name"": null,
  ""custom_name"": null,
  ""getPrivate"": false,
  ""getOnly"": true,
  ""ints"": [
    0
  ],
  ""testValue1"": 1,
  ""alreadyCamelCase"": {
    ""NotProcessed"": true
  }
}",
                json
                );
        }
Пример #4
0
        public void ExtensionDataTest_DeserializeWithNamingStrategy()
        {
            string json =
                @"{
  ""Ints"": [1,2,3],
  ""Ignored"": [1,2,3],
  ""Readonly"": ""Readonly"",
  ""Name"": ""Actually set!"",
  ""CustomName"": ""Wrong name!"",
  ""GetPrivate"": true,
  ""GetOnly"": true,
  ""NewValueSimple"": true,
  ""NewValueComplex"": [1,2,3]
}";

            ExtensionDataTestClass c = JsonConvert.DeserializeObject <ExtensionDataTestClass>(
                json,
                new JsonSerializerSettings
            {
                ContractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy
                    {
                        ProcessExtensionDataNames = true
                    }
                }
            }
                );

            Assert.AreEqual("Actually set!", c.Name);
            Assert.AreEqual(4, c.Ints.Count);

            Assert.AreEqual("Readonly", (string)c.ExtensionData["Readonly"]);
            Assert.AreEqual("Wrong name!", (string)c.ExtensionData["CustomName"]);
            Assert.AreEqual(true, (bool)c.ExtensionData["GetPrivate"]);
            Assert.AreEqual(true, (bool)c.ExtensionData["GetOnly"]);
            Assert.AreEqual(true, (bool)c.ExtensionData["NewValueSimple"]);
            Assert.IsTrue(
                JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["NewValueComplex"])
                );
            Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), c.ExtensionData["Ignored"]));

            Assert.AreEqual(7, c.ExtensionData.Count);
        }