test(objects): Verify tests for serialization (#227)

* Objects Verify Tests

* VerifyTests

* Verify as array with deterministic order

* lock

* Updated verified
This commit is contained in:
Jedd Morgan
2025-03-12 08:29:30 +00:00
committed by GitHub
parent 4110d90107
commit 93d517eab7
7 changed files with 189 additions and 7 deletions
@@ -0,0 +1,33 @@
using Speckle.Sdk.Models;
using Speckle.Sdk.Serialisation;
using Speckle.Sdk.Serialisation.V2.Send;
using Speckle.Sdk.Testing;
namespace Speckle.Objects.SerializationTests;
public sealed class ObjectsSerializationTest
{
[Theory]
[MemberData(nameof(ObjectsTestData.TheoryData), MemberType = typeof(ObjectsTestData))]
public async Task SerializeAndVerify(Base testCase)
{
var serialized = Serialize(testCase);
await VerifySerialized(serialized).UseParameters(testCase);
}
private static IReadOnlyList<(Id, Json, Dictionary<Id, int>)> Serialize(Base data)
{
using var serializer = new ObjectSerializerFactory(new BasePropertyGatherer()).Create(
new Dictionary<Id, NodeInfo>(),
default
);
return serializer.Serialize(data).ToList();
}
private static SettingsTask VerifySerialized(IReadOnlyList<(Id, Json, Dictionary<Id, int>)> serializedResult)
{
var jsons = serializedResult.OrderBy(x => x.Item1.Value).Select(x => x.Item2).ToArray();
return SpeckleVerify.VerifyJsons(jsons);
}
}