UnitTests/NetworkStorageRequestSecurityTests.cs
using Sandbox;
using System.Text.Json;
[TestClass]
public class NetworkStorageRequestSecurityTests
{
[TestMethod]
public void CreateEncryptedRequestId_ProducesParseableUniqueId()
{
var first = NetworkStorage.CreateEncryptedRequestId();
var second = NetworkStorage.CreateEncryptedRequestId();
Assert.AreNotEqual( first, second );
Assert.IsTrue( NetworkStorage.TryParseEncryptedRequestId( first, out var unixSeconds, out var random ) );
Assert.IsTrue( unixSeconds > 0 );
Assert.IsTrue( random.Length >= 6 );
Assert.IsTrue( first.StartsWith( $"{unixSeconds}_" ) );
}
[TestMethod]
public void TryParseEncryptedRequestId_RejectsMalformedIds()
{
Assert.IsFalse( NetworkStorage.TryParseEncryptedRequestId( "", out _, out _ ) );
Assert.IsFalse( NetworkStorage.TryParseEncryptedRequestId( "abc_abcdef", out _, out _ ) );
Assert.IsFalse( NetworkStorage.TryParseEncryptedRequestId( "12345_short", out _, out _ ) );
Assert.IsFalse( NetworkStorage.TryParseEncryptedRequestId( "12345_abcd!", out _, out _ ) );
Assert.IsFalse( NetworkStorage.TryParseEncryptedRequestId( "12345_abcdef_extra", out _, out _ ) );
}
[TestMethod]
public void NetworkStorageOperation_SerializesBackendShape()
{
var json = JsonSerializer.Serialize( new
{
ops = new[]
{
NetworkStorageOperation.Increment( "xp", 50, source: "server", reason: "quest" ),
NetworkStorageOperation.Set( "name", "Ada" )
}
} );
Assert.IsTrue( json.Contains( "\"op\":\"inc\"" ) );
Assert.IsTrue( json.Contains( "\"path\":\"xp\"" ) );
Assert.IsTrue( json.Contains( "\"value\":50" ) );
Assert.IsTrue( json.Contains( "\"source\":\"server\"" ) );
Assert.IsFalse( json.Contains( "\"Value\"" ) );
}
[TestMethod]
public void IsSecurityConfigMismatchCode_DetectsServerSecurityMismatch()
{
Assert.IsTrue( NetworkStorage.IsSecurityConfigMismatchCode( "SECURITY_ENCRYPTION_REQUIRED" ) );
Assert.IsTrue( NetworkStorage.IsSecurityConfigMismatchCode( "security_session_disabled" ) );
Assert.IsFalse( NetworkStorage.IsSecurityConfigMismatchCode( "SBOX_AUTH_FAILED" ) );
Assert.IsFalse( NetworkStorage.IsSecurityConfigMismatchCode( "" ) );
}
}