Skip to content

Commit 97cd84e

Browse files
committed
- moved all Serialization.DataContract tests to a new project (net48)
- moved all Serialization.DataContract.Compatibility.Json tests to another new project (net48) - added missing tests for the BasicQuantityContractSurrogate
1 parent cd1fc52 commit 97cd84e

19 files changed

+133
-44
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net48</TargetFramework>
5+
6+
<IsPackable>false</IsPackable>
7+
8+
<LangVersion>latest</LangVersion>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
13+
<PackageReference Include="xunit" Version="2.4.1" />
14+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
15+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
16+
<DotNetCliToolReference Include="JetBrains.dotCover.CommandLineTools" Version="2019.1.3" />
17+
</ItemGroup>
18+
19+
<ItemGroup>
20+
<ProjectReference Include="..\UnitsNet.Serialization.DataContract.Tests\UnitsNet.Serialization.DataContract.Tests.csproj" />
21+
<ProjectReference Include="..\UnitsNet.Serialization.JsonNet\UnitsNet.Serialization.JsonNet.csproj" />
22+
</ItemGroup>
23+
24+
</Project>

UnitsNet.Serialization.JsonNet.Tests/Compatibility/DataContractToJsonNetSerializationTests.cs renamed to UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests/UnitsNetIQuantityJsonConverter/DataContractToJsonNetSerializationTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
33

4-
#if NETFRAMEWORK
54
using System.IO;
65
using System.Runtime.Serialization.Json;
76
using Newtonsoft.Json;
7+
using UnitsNet.Serialization.DataContract.Tests;
88
using UnitsNet.Serialization.Surrogates;
9-
using UnitsNet.Tests.Serialization;
109
using Xunit;
1110

12-
namespace UnitsNet.Serialization.JsonNet.Tests.Compatibility
11+
namespace UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests.UnitsNetIQuantityJsonConverter
1312
{
1413
public class DataContractToJsonNetSerializationTests : SerializationTestsBase<string>
1514
{
@@ -20,7 +19,7 @@ public class DataContractToJsonNetSerializationTests : SerializationTestsBase<st
2019
public DataContractToJsonNetSerializationTests()
2120
{
2221
_jsonNetSerializerSettings = new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.None};
23-
_jsonNetSerializerSettings.Converters.Add(new UnitsNetIQuantityJsonConverter());
22+
_jsonNetSerializerSettings.Converters.Add(new JsonNet.UnitsNetIQuantityJsonConverter());
2423
_dataContractJsonSerializerSettings = new DataContractJsonSerializerSettings {DataContractSurrogate = new ExtendedQuantityDataContractSurrogate()};
2524
}
2625

@@ -59,4 +58,3 @@ public override void TupleOfDecimalAndNullQuantities_SerializationRoundTrips()
5958
}
6059
}
6160
}
62-
#endif

UnitsNet.Serialization.JsonNet.Tests/Compatibility/JsonNetToDataContractSerializationTests.cs renamed to UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests/UnitsNetIQuantityJsonConverter/JsonNetToDataContractSerializationTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
33

4-
#if NETFRAMEWORK
54
using System.IO;
65
using System.Runtime.Serialization.Json;
76
using Newtonsoft.Json;
7+
using UnitsNet.Serialization.DataContract.Tests;
88
using UnitsNet.Serialization.Surrogates;
9-
using UnitsNet.Tests.Serialization;
109
using Xunit;
1110

12-
namespace UnitsNet.Serialization.JsonNet.Tests.Compatibility
11+
namespace UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests.UnitsNetIQuantityJsonConverter
1312
{
1413
public class JsonNetToDataContractSerializationTests : SerializationTestsBase<string>
1514
{
@@ -20,7 +19,7 @@ public class JsonNetToDataContractSerializationTests : SerializationTestsBase<st
2019
public JsonNetToDataContractSerializationTests()
2120
{
2221
_jsonNetSerializerSettings = new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.None};
23-
_jsonNetSerializerSettings.Converters.Add(new UnitsNetIQuantityJsonConverter());
22+
_jsonNetSerializerSettings.Converters.Add(new JsonNet.UnitsNetIQuantityJsonConverter());
2423
_dataContractJsonSerializerSettings = new DataContractJsonSerializerSettings {DataContractSurrogate = new ExtendedQuantityDataContractSurrogate()};
2524
}
2625

@@ -59,4 +58,3 @@ public override void TupleOfDecimalAndNullQuantities_SerializationRoundTrips()
5958
}
6059
}
6160
}
62-
#endif

UnitsNet.Serialization.JsonNet.CompatibilityTests/DataContractToJsonNetSerializationTests.cs renamed to UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests/UnitsNetJsonConverter/DataContractToJsonNetSerializationTests.cs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
33

4-
#if NETFRAMEWORK
54
using System.IO;
65
using System.Runtime.Serialization.Json;
76
using Newtonsoft.Json;
7+
using UnitsNet.Serialization.DataContract.Tests;
88
using UnitsNet.Serialization.Surrogates;
9-
using UnitsNet.Tests.Serialization;
109
using Xunit;
1110

12-
namespace UnitsNet.Serialization.JsonNet.CompatibilityTests
11+
namespace UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests.UnitsNetJsonConverter
1312
{
1413
public class DataContractToJsonNetSerializationTests : SerializationTestsBase<string>
1514
{
@@ -20,7 +19,7 @@ public class DataContractToJsonNetSerializationTests : SerializationTestsBase<st
2019
public DataContractToJsonNetSerializationTests()
2120
{
2221
_jsonNetSerializerSettings = new JsonSerializerSettings();
23-
_jsonNetSerializerSettings.Converters.Add(new UnitsNetJsonConverter());
22+
_jsonNetSerializerSettings.Converters.Add(new JsonNet.UnitsNetJsonConverter());
2423
_dataContractJsonSerializerSettings = new DataContractJsonSerializerSettings {DataContractSurrogate = new BasicQuantityContractSurrogate()};
2524
}
2625

@@ -38,19 +37,19 @@ protected override T DeserializeObject<T>(string payload)
3837
{
3938
return JsonConvert.DeserializeObject<T>(payload, _jsonNetSerializerSettings);
4039
}
41-
40+
4241
[Fact(Skip = "Arrays are currently not supported by the UnitsNetJsonConverter")]
4342
public override void ArrayOfDoubleValueQuantities_SerializationRoundTrips()
4443
{
4544
base.ArrayOfDoubleValueQuantities_SerializationRoundTrips();
4645
}
47-
46+
4847
[Fact(Skip = "Arrays are currently not supported by the UnitsNetJsonConverter")]
4948
public override void ArrayOfDecimalValueQuantities_SerializationRoundTrips()
5049
{
5150
base.ArrayOfDecimalValueQuantities_SerializationRoundTrips();
5251
}
53-
52+
5453
[Fact(Skip = "Arrays are currently not supported by the UnitsNetJsonConverter")]
5554
public override void EmptyArray_RoundTripsEmpty()
5655
{
@@ -74,7 +73,5 @@ public override void TupleOfDecimalAndNullQuantities_SerializationRoundTrips()
7473
{
7574
base.TupleOfDecimalAndNullQuantities_SerializationRoundTrips();
7675
}
77-
7876
}
7977
}
80-
#endif

UnitsNet.Serialization.JsonNet.CompatibilityTests/JsonNetToDataContractSerializationTests.cs renamed to UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests/UnitsNetJsonConverter/JsonNetToDataContractSerializationTests.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
33

4-
#if NETFRAMEWORK
54
using System.IO;
65
using System.Runtime.Serialization.Json;
76
using Newtonsoft.Json;
7+
using UnitsNet.Serialization.DataContract.Tests;
88
using UnitsNet.Serialization.Surrogates;
9-
using UnitsNet.Tests.Serialization;
109
using Xunit;
1110

12-
namespace UnitsNet.Serialization.JsonNet.CompatibilityTests
11+
namespace UnitsNet.Serialization.DataContract.Compatibility.JsonNetTests.UnitsNetJsonConverter
1312
{
1413
public class JsonNetToDataContractSerializationTests : SerializationTestsBase<string>
1514
{
@@ -20,7 +19,7 @@ public class JsonNetToDataContractSerializationTests : SerializationTestsBase<st
2019
public JsonNetToDataContractSerializationTests()
2120
{
2221
_jsonNetSerializerSettings = new JsonSerializerSettings();
23-
_jsonNetSerializerSettings.Converters.Add(new UnitsNetJsonConverter());
22+
_jsonNetSerializerSettings.Converters.Add(new JsonNet.UnitsNetJsonConverter());
2423
_dataContractJsonSerializerSettings = new DataContractJsonSerializerSettings {DataContractSurrogate = new BasicQuantityContractSurrogate()};
2524
}
2625

@@ -39,19 +38,19 @@ protected override T DeserializeObject<T>(string payload)
3938
stream.Position = 0;
4039
return (T) serializer.ReadObject(stream);
4140
}
42-
41+
4342
[Fact(Skip = "Arrays are currently not supported by the UnitsNetJsonConverter")]
4443
public override void ArrayOfDoubleValueQuantities_SerializationRoundTrips()
4544
{
4645
base.ArrayOfDoubleValueQuantities_SerializationRoundTrips();
4746
}
48-
47+
4948
[Fact(Skip = "Arrays are currently not supported by the UnitsNetJsonConverter")]
5049
public override void ArrayOfDecimalValueQuantities_SerializationRoundTrips()
5150
{
5251
base.ArrayOfDecimalValueQuantities_SerializationRoundTrips();
5352
}
54-
53+
5554
[Fact(Skip = "Arrays are currently not supported by the UnitsNetJsonConverter")]
5655
public override void EmptyArray_RoundTripsEmpty()
5756
{
@@ -77,4 +76,3 @@ public override void TupleOfDecimalAndNullQuantities_SerializationRoundTrips()
7776
}
7877
}
7978
}
80-
#endif

UnitsNet.Tests/Serialization/DataContractJsonSerializerTests/DataContractJsonSerializerTestsBase.cs renamed to UnitsNet.Serialization.DataContract.Tests/DataContractJsonSerializerTests/DataContractJsonSerializerTestsBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.IO;
55
using System.Runtime.Serialization.Json;
66

7-
namespace UnitsNet.Tests.Serialization.DataContractJsonSerializerTests
7+
namespace UnitsNet.Serialization.DataContract.Tests.DataContractJsonSerializerTests
88
{
99
public abstract class DataContractJsonSerializerTestsBase : SerializationTestsBase<string>
1010
{
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
using UnitsNet.Units;
22
using Xunit;
33

4-
namespace UnitsNet.Tests.Serialization.DataContractJsonSerializerTests
4+
namespace UnitsNet.Serialization.DataContract.Tests.DataContractJsonSerializerTests
55
{
6+
/// <summary>
7+
/// These tests demonstrate the default behavior of the DataContractJsonSerializer when dealing with quantities
8+
/// <remarks>
9+
/// <para>Note that the produced schema is different from the one generated using the UnitsNet.Json package</para>
10+
/// </remarks>
11+
/// </summary>
612
public class DefaultDataContractJsonSerializerTests : DataContractJsonSerializerTestsBase
713
{
814
[Fact]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System.Runtime.Serialization.Json;
2+
using UnitsNet.Serialization.Surrogates;
3+
4+
namespace UnitsNet.Serialization.DataContract.Tests.DataContractJsonSerializerTests.Surrogates
5+
{
6+
/// <summary>
7+
/// There are no special tests here: uses the <i>standard</i> format of encoding the Unit & Value (with no support for
8+
/// decimals):
9+
/// https://github.com/angularsen/UnitsNet#serialization
10+
/// <remarks>
11+
/// <para>Compatible with the legacy JsonConverter</para>
12+
/// </remarks>
13+
/// </summary>
14+
public class BasicQuantityContractSurrogateTests : StringUnitJsonDataContractSerializerTestsBase
15+
{
16+
public BasicQuantityContractSurrogateTests()
17+
: base(new DataContractJsonSerializerSettings {DataContractSurrogate = new BasicQuantityContractSurrogate()})
18+
{
19+
}
20+
}
21+
}
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
3-
#if NETFRAMEWORK
3+
44
using System.Runtime.Serialization.Json;
55
using UnitsNet.Serialization.Surrogates;
66
using UnitsNet.Units;
77
using Xunit;
88

9-
namespace UnitsNet.Tests.Serialization.DataContractJsonSerializerTests.Surrogates
9+
namespace UnitsNet.Serialization.DataContract.Tests.DataContractJsonSerializerTests.Surrogates
1010
{
11+
/// <summary>
12+
/// Tests the extended decimal support contracts (compatible with the new UnitsNet.Json converter)
13+
/// </summary>
1114
public class ExtendedDataContractJsonSerializerTests : StringUnitJsonDataContractSerializerTestsBase
1215
{
1316
public ExtendedDataContractJsonSerializerTests()
@@ -38,4 +41,3 @@ public void DecimalQuantity_InScientificNotation_SerializedWithExpandedValueAndU
3841
}
3942
}
4043
}
41-
#endif
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
#if NETFRAMEWORK
1+
// Licensed under MIT No Attribution, see LICENSE file at the root.
2+
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
3+
24
using System.Runtime.Serialization.Json;
35
using UnitsNet.Serialization.Surrogates;
46
using UnitsNet.Units;
57
using Xunit;
68

7-
namespace UnitsNet.Tests.Serialization.DataContractJsonSerializerTests.Surrogates
9+
namespace UnitsNet.Serialization.DataContract.Tests.DataContractJsonSerializerTests.Surrogates
810
{
911
public class GenericDataContractJsonSerializerTests : StringUnitJsonDataContractSerializerTestsBase
1012
{
@@ -37,4 +39,3 @@ public void DecimalQuantity_InScientificNotation_SerializedWithExpandedValueAndM
3739
}
3840
}
3941
}
40-
#endif

0 commit comments

Comments
 (0)