Skip to content

Commit

Permalink
remove newtonsoft dependency from core library (it serializes out of …
Browse files Browse the repository at this point in the history
…the box), add pending System.Text.Json tests
  • Loading branch information
kMutagene committed Sep 25, 2024
1 parent 27e0ac4 commit fb334d3
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 13 deletions.
1 change: 1 addition & 0 deletions src/DynamicObj.Immutable/DynamicObj.Immutable.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

<ItemGroup>
<PackageReference Include="Fable.Core" Version="4.3.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

<ItemGroup>
Expand Down
5 changes: 0 additions & 5 deletions src/DynamicObj/DynamicObj.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@

#if !FABLE_COMPILER
open System.Dynamic
open Newtonsoft.Json
open Newtonsoft.Json.Serialization
open Newtonsoft.Json.Converters
open Newtonsoft.Json.Linq
open System.Runtime.Serialization
#endif

open System.Collections.Generic
Expand Down
1 change: 0 additions & 1 deletion src/DynamicObj/DynamicObj.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@

<ItemGroup>
<PackageReference Include="Fable.Core" Version="4.3.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>

<ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions tests/DynamicObject.Tests/DynamicObject.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<ProjectReference Include="..\..\src\DynamicObj\DynamicObj.fsproj" />
</ItemGroup>

Expand Down
25 changes: 18 additions & 7 deletions tests/DynamicObject.Tests/Serialization.fs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ open System.Collections.Generic
open Fable.Pyxpecto
open DynamicObj

#if !FABLE_COMPILER
open Newtonsoft.Json
#endif

open DynamicObj

let test_dynobj =
Expand Down Expand Up @@ -71,15 +67,29 @@ let test_derived_2 =
#if !FABLE_COMPILER
let tests_newtonsoft = testList "Newtonsoft (.NET)" [
testCase "Serialize DynamicObj" <| fun _ ->
let actual = JsonConvert.SerializeObject(test_dynobj)
let actual = Newtonsoft.Json.JsonConvert.SerializeObject(test_dynobj)
Expect.equal actual """{"dynamic_string":"yes","dynamic_number":69,"dynamic_boolean":true,"dynamic_array":["First","Second"],"dynamic_object":{"inner":"yup"}}""" ""

testCase "Serialize simplederived class from DynamicObj" <| fun _ ->
let actual = Newtonsoft.Json.JsonConvert.SerializeObject(test_derived_1)
Expect.equal actual """{"StaticProp":"lol","dynamicProp":42}""" ""

testCase "Serialize complex derived class from DynamicObj" <| fun _ ->
let actual = Newtonsoft.Json.JsonConvert.SerializeObject(test_derived_2)
Expect.equal actual """{"StaticString":"lol","StaticNumber":42.0,"StaticBoolean":true,"StaticArray":["First","Second"],"StaticObject":{"StaticProp":"lol","dynamicProp":42},"dynamic_string":"yes","dynamic_number":69,"dynamic_boolean":true,"dynamic_array":["First","Second"],"dynamic_object":{"inner":"yup"}}""" ""
]

let tests_system_text_json = ptestList "System.Text.Json (.NET)" [
testCase "Serialize DynamicObj" <| fun _ ->
let actual = System.Text.Json.JsonSerializer.Serialize(test_dynobj)
Expect.equal actual """{"dynamic_string":"yes","dynamic_number":69,"dynamic_boolean":true,"dynamic_array":["First","Second"],"dynamic_object":{"inner":"yup"}}""" ""

testCase "Serialize simplederived class from DynamicObj" <| fun _ ->
let actual = JsonConvert.SerializeObject(test_derived_1)
let actual = System.Text.Json.JsonSerializer.Serialize(test_derived_1)
Expect.equal actual """{"StaticProp":"lol","dynamicProp":42}""" ""

testCase "Serialize complex derived class from DynamicObj" <| fun _ ->
let actual = JsonConvert.SerializeObject(test_derived_2)
let actual = System.Text.Json.JsonSerializer.Serialize(test_derived_2)
Expect.equal actual """{"StaticString":"lol","StaticNumber":42.0,"StaticBoolean":true,"StaticArray":["First","Second"],"StaticObject":{"StaticProp":"lol","dynamicProp":42},"dynamic_string":"yes","dynamic_number":69,"dynamic_boolean":true,"dynamic_array":["First","Second"],"dynamic_object":{"inner":"yup"}}""" ""
]
#endif
Expand All @@ -91,5 +101,6 @@ let main = testList "Serialization" [
tests_custom
#if !FABLE_COMPILER
tests_newtonsoft
tests_system_text_json
#endif
]

0 comments on commit fb334d3

Please sign in to comment.