@@ -34,6 +34,30 @@ module NonStruct =
3434 let actual = JsonSerializer.Serialize({ bx = 1 ; by = " b" }, options)
3535 Assert.Equal( """ {"bx":1,"by":"b"}""" , actual)
3636
37+ type internal Internal = { ix: int }
38+
39+ [<Fact>]
40+ let ``serialize non - public record`` () =
41+ let actual = JsonSerializer.Serialize({ ix = 1 }, options)
42+ Assert.Equal( """ {"ix":1}""" , actual)
43+
44+ [<Fact>]
45+ let ``deserialize non - public record`` () =
46+ let actual = JsonSerializer.Deserialize< Internal>( """ {"ix":1}""" , options)
47+ Assert.Equal({ ix = 1 }, actual)
48+
49+ type PrivateFields = private { px: int }
50+
51+ [<Fact>]
52+ let ``serialize record with private fields`` () =
53+ let actual = JsonSerializer.Serialize({ px = 1 }, options)
54+ Assert.Equal( """ {"px":1}""" , actual)
55+
56+ [<Fact>]
57+ let ``deserialize record with private fields`` () =
58+ let actual = JsonSerializer.Deserialize< PrivateFields>( """ {"px":1}""" , options)
59+ Assert.Equal({ px = 1 }, actual)
60+
3761 [<Fact>]
3862 let ``not fill in nulls`` () =
3963 try
@@ -396,6 +420,32 @@ module Struct =
396420 let actual = JsonSerializer.Serialize({ bx = 1 ; by = " b" }, options)
397421 Assert.Equal( """ {"bx":1,"by":"b"}""" , actual)
398422
423+ [<Struct>]
424+ type internal Internal = { ix: int }
425+
426+ [<Fact>]
427+ let ``serialize non - public record`` () =
428+ let actual = JsonSerializer.Serialize({ ix = 1 }, options)
429+ Assert.Equal( """ {"ix":1}""" , actual)
430+
431+ [<Fact>]
432+ let ``deserialize non - public record`` () =
433+ let actual = JsonSerializer.Deserialize< Internal>( """ {"ix":1}""" , options)
434+ Assert.Equal({ ix = 1 }, actual)
435+
436+ [<Struct>]
437+ type PrivateFields = private { px: int }
438+
439+ [<Fact>]
440+ let ``serialize record with private fields`` () =
441+ let actual = JsonSerializer.Serialize({ px = 1 }, options)
442+ Assert.Equal( """ {"px":1}""" , actual)
443+
444+ [<Fact>]
445+ let ``deserialize record with private fields`` () =
446+ let actual = JsonSerializer.Deserialize< PrivateFields>( """ {"px":1}""" , options)
447+ Assert.Equal({ px = 1 }, actual)
448+
399449 [<Fact>]
400450 let ``not fill in nulls`` () =
401451 try
0 commit comments