public class TestObject
{
public string NonEmptyString { get; set; } = nameof(NonEmptyString);
public string TrimmableString { get; set; } = $"{nameof(TrimmableString)} ";
public string NonTruncatableString { get; set; } = "1234567890123456789012345678901234567890";
public string EmptyString { get; set; } = "";
public string? NullString { get; set; } = null;
public string WhiteSpaceString { get; set; } = " ";
public string[] EmptyList { get; set; } = [];
public string?[] ListWithNullOrWhitespaceString { get; set; } = ["", " ", null];
public string?[] ListWithMixedString { get; set; } = ["", " ", null, "TrimmableEntry ", "NonTrimmableEntry", "1234567890123456789012345678901234567890"];
public List<TestObject> ListWithObjects { get; set; } = [];
}
public class JsonSerializerTests
{
[Fact]
public void Test()
{
var jsonSerializerOptions = new JsonSerializerOptions()
{
WriteIndented = true,
Converters =
{
// ADD HERE LIST OF CONVERTERS
},
TypeInfoResolver = new DefaultJsonTypeInfoResolver
{
Modifiers =
{
// ADD HERE LIST OF MODIFIERS
}
}
};
var testObject = new TestObject
{
ListWithObjects = new List<TestObject>
{
new TestObject() { ListWithObjects = []},
}
};
var json = JsonSerializer.Serialize(testObject, jsonSerializerOptions);
Assert.Equal("""
{
"NonEmptyString": "NonEmptyString",
"TrimmableString": "TrimmableString",
"NonTruncatableString": "1234567890123456789012345678901234567890",
"ListWithMixedString": [
"TrimmableEntry",
"NonTrimmableEntry",
"12345678901234567890123456789012..."
],
"ListWithObjects": [
{
"NonEmptyString": "NonEmptyString",
"TrimmableString": "TrimmableString",
"NonTruncatableString": "1234567890123456789012345678901234567890",
"ListWithMixedString": [
"TrimmableEntry",
"NonTrimmableEntry",
"12345678901234567890123456789012..."
]
}
]
}
""",
json);
}
}
public class TestObject
{
public string NonEmptyString { get; set; } = nameof(NonEmptyString);
public string TrimmableString { get; set; } = $"{nameof(TrimmableString)} ";
public string NonTruncatableString { get; set; } = "1234567890123456789012345678901234567890";
public string EmptyString { get; set; } = "";
public string? NullString { get; set; } = null;
public string WhiteSpaceString { get; set; } = " ";
public string[] EmptyList { get; set; } = [];
public string?[] ListWithNullOrWhitespaceString { get; set; } = ["", " ", null];
public string?[] ListWithMixedString { get; set; } = ["", " ", null, "TrimmableEntry ", "NonTrimmableEntry", "1234567890123456789012345678901234567890"];
public List<TestObject> ListWithObjects { get; set; } = [];
}
public class JsonSerializerTests
{
[Fact]
public void Test()
{
var jsonSerializerOptions = new JsonSerializerOptions()
{
WriteIndented = true,
Converters =
{
// ADD HERE LIST OF CONVERTERS
},
TypeInfoResolver = new DefaultJsonTypeInfoResolver
{
Modifiers =
{
// ADD HERE LIST OF MODIFIERS
}
}
};
var testObject = new TestObject
{
ListWithObjects = new List<TestObject>
{
new TestObject() { ListWithObjects = []},
}
};
var json = JsonSerializer.Serialize(testObject, jsonSerializerOptions);
Assert.Equal("""
{
"NonEmptyString": "NonEmptyString",
"TrimmableString": "TrimmableString",
"NonTruncatableString": "1234567890123456789012345678901234567890",
"ListWithMixedString": [
"TrimmableEntry",
"NonTrimmableEntry",
"12345678901234567890123456789012..."
],
"ListWithObjects": [
{
"NonEmptyString": "NonEmptyString",
"TrimmableString": "TrimmableString",
"NonTruncatableString": "1234567890123456789012345678901234567890",
"ListWithMixedString": [
"TrimmableEntry",
"NonTrimmableEntry",
"12345678901234567890123456789012..."
]
}
]
}
""",
json);
}
}