using System; using System.Collections.Generic; using System.Linq; using System.Text; using Topten.JsonKit; using System.IO; using System.Reflection; using Xunit; namespace TestCases { [Obfuscation(Exclude = true, ApplyToMembers = true)] public class TestExcludeIfNull { class Thing { [Json("field", ExcludeIfNull = true)] public string Field; [Json("property", ExcludeIfNull = true)] public string Property { get; set; } [Json("nfield", ExcludeIfNull = true)] public int? NField; [Json("nproperty", ExcludeIfNull = true)] public int? NProperty { get; set; } } [Fact] public void TestDoesntWriteNull() { var thing = new Thing(); // Save it var json = Json.Format(thing); // Check the object kinds were written out Assert.DoesNotContain("\"field\":", json); Assert.DoesNotContain("\"property\":", json); Assert.DoesNotContain("\"nfield\":", json); Assert.DoesNotContain("\"nproperty\":", json); } [Fact] public void TestDoesWriteNonNull() { var thing = new Thing() { Field = "blah", Property = "deblah", NField = 23, NProperty = 24, }; // Save it var json = Json.Format(thing); // Check the object kinds were written out Assert.Contains("\"field\":", json); Assert.Contains("\"property\":", json); Assert.Contains("\"nfield\":", json); Assert.Contains("\"nproperty\":", json); Assert.Contains("\"blah\"", json); Assert.Contains("\"deblah\"", json); Assert.Contains("23", json); Assert.Contains("24", json); } } }