Initial commit: Client Doc docs Server Tools
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using Xunit;
|
||||
using XWorld.Framework.Protocol;
|
||||
|
||||
namespace XWorld.Framework.Tests
|
||||
{
|
||||
public class DevDiscoveryCodecTests
|
||||
{
|
||||
[Fact]
|
||||
public void Query_RoundTrips()
|
||||
{
|
||||
var q = new DevDiscoveryQuery { ProtoVersion = DevDiscovery.ProtoVersion, Nonce = 0xABCDEF, Token = "dev-token" };
|
||||
byte[] bytes = DevDiscoveryCodec.EncodeQuery(q);
|
||||
Assert.True(DevDiscoveryCodec.TryDecodeQuery(bytes, out var got));
|
||||
Assert.Equal(q.ProtoVersion, got.ProtoVersion);
|
||||
Assert.Equal(q.Nonce, got.Nonce);
|
||||
Assert.Equal(q.Token, got.Token);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Reply_RoundTrips()
|
||||
{
|
||||
var reply = new DevDiscoveryReply
|
||||
{
|
||||
ProtoVersion = DevDiscovery.ProtoVersion,
|
||||
Nonce = 42,
|
||||
ServerName = "dev-pc",
|
||||
GatewayUrl = "ws://192.168.1.23:5005/ws",
|
||||
ResourceBaseUrl = "http://192.168.1.23:15081/minigame/",
|
||||
Token = "dev-token",
|
||||
};
|
||||
byte[] bytes = DevDiscoveryCodec.EncodeReply(reply);
|
||||
Assert.True(DevDiscoveryCodec.TryDecodeReply(bytes, out var got));
|
||||
Assert.Equal(reply.GatewayUrl, got.GatewayUrl);
|
||||
Assert.Equal(reply.ResourceBaseUrl, got.ResourceBaseUrl);
|
||||
Assert.Equal(reply.ServerName, got.ServerName);
|
||||
Assert.Equal(reply.Nonce, got.Nonce);
|
||||
Assert.Equal(reply.Token, got.Token);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BadMagic_Rejected()
|
||||
{
|
||||
byte[] bytes = { 0x00, 0x01, 0x02, 0x03, DevDiscovery.TypeQuery, 1 };
|
||||
Assert.False(DevDiscoveryCodec.TryDecodeQuery(bytes, out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Truncated_Rejected()
|
||||
{
|
||||
Assert.False(DevDiscoveryCodec.TryDecodeQuery(new byte[] { 0x58, 0x57 }, out _));
|
||||
Assert.False(DevDiscoveryCodec.TryDecodeReply(Array.Empty<byte>(), out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WrongType_Rejected()
|
||||
{
|
||||
var q = new DevDiscoveryQuery { ProtoVersion = 1, Nonce = 1, Token = "t" };
|
||||
byte[] queryBytes = DevDiscoveryCodec.EncodeQuery(q);
|
||||
Assert.False(DevDiscoveryCodec.TryDecodeReply(queryBytes, out _));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user