vampire-like/Assets/Plugins/InputModule/Tests/PlayMode/InputModule/BindingOverridePersistenceT...

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);
}
}
}