79 lines
2.6 KiB
C#
79 lines
2.6 KiB
C#
using NUnit.Framework;
|
|
using SepCore.InputModule.Runtime;
|
|
|
|
namespace SepCore.InputModule.Tests
|
|
{
|
|
public class BindingOverridePersistenceTests
|
|
{
|
|
[Test]
|
|
public void SerializeV2_WrapsPayload()
|
|
{
|
|
string payload = "[{\"test\":true}]";
|
|
string result = BindingOverridePersistence.Serialize(payload);
|
|
|
|
Assert.That(result, Does.Contain("\"version\":2"));
|
|
|
|
bool success = BindingOverridePersistence.TryDeserialize(result, out string deserialized);
|
|
Assert.That(success, Is.True);
|
|
Assert.That(deserialized, Is.EqualTo(payload));
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_V1RawJson_ReturnsTrueWithOriginalString()
|
|
{
|
|
string v1 = "[{\"action\":\"test\"}]";
|
|
bool success = BindingOverridePersistence.TryDeserialize(v1, out string overridesJson);
|
|
|
|
Assert.That(success, Is.True);
|
|
Assert.That(overridesJson, Is.EqualTo(v1));
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_V2Wrapped_ReturnsTrueWithPayload()
|
|
{
|
|
string payload = "[{\"action\":\"test\"}]";
|
|
string v2 = BindingOverridePersistence.Serialize(payload);
|
|
bool success = BindingOverridePersistence.TryDeserialize(v2, out string overridesJson);
|
|
|
|
Assert.That(success, Is.True);
|
|
Assert.That(overridesJson, Is.EqualTo(payload));
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_CorruptedJson_ReturnsFalse()
|
|
{
|
|
bool success = BindingOverridePersistence.TryDeserialize("{not valid json", out _);
|
|
Assert.That(success, Is.False);
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_FutureVersion_ReturnsFalse()
|
|
{
|
|
string future = "{\"version\":99,\"payload\":\"test\"}";
|
|
bool success = BindingOverridePersistence.TryDeserialize(future, out _);
|
|
Assert.That(success, Is.False);
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_EmptyData_ReturnsFalse()
|
|
{
|
|
bool success = BindingOverridePersistence.TryDeserialize("", out _);
|
|
Assert.That(success, Is.False);
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_NullData_ReturnsFalse()
|
|
{
|
|
bool success = BindingOverridePersistence.TryDeserialize(null, out _);
|
|
Assert.That(success, Is.False);
|
|
}
|
|
|
|
[Test]
|
|
public void TryDeserialize_Whitespace_ReturnsFalse()
|
|
{
|
|
bool success = BindingOverridePersistence.TryDeserialize(" ", out _);
|
|
Assert.That(success, Is.False);
|
|
}
|
|
}
|
|
}
|