Initial commit: Client Doc docs Server Tools
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using System.IO;
|
||||
using Xunit;
|
||||
using XWorld.Server.Host;
|
||||
|
||||
namespace XWorld.Server.Host.Tests
|
||||
{
|
||||
public class GameManifestTests
|
||||
{
|
||||
private const string Valid = @"{
|
||||
""gameId"": ""rps"",
|
||||
""version"": 2,
|
||||
""serverAssembly"": ""RPS.Server.dll"",
|
||||
""serverEntryType"": ""RPS.Server.RpsServerRoom"",
|
||||
""minFrameworkVersion"": 1,
|
||||
""playerCount"": 2,
|
||||
""tickRateHz"": 10
|
||||
}";
|
||||
|
||||
[Fact]
|
||||
public void Parse_Valid_ReadsAllFields()
|
||||
{
|
||||
var m = GameManifest.Parse(Valid);
|
||||
Assert.Equal("rps", m.GameId);
|
||||
Assert.Equal(2, m.Version);
|
||||
Assert.Equal("RPS.Server.dll", m.ServerAssembly);
|
||||
Assert.Equal("RPS.Server.RpsServerRoom", m.ServerEntryType);
|
||||
Assert.Equal(1, m.MinFrameworkVersion);
|
||||
Assert.Equal(2, m.PlayerCount);
|
||||
Assert.Equal(10, m.TickRateHz);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_CaseInsensitive_FieldNames()
|
||||
{
|
||||
var m = GameManifest.Parse(@"{""GameId"":""x"",""Version"":1,""ServerAssembly"":""X.dll"",""ServerEntryType"":""X.Y""}");
|
||||
Assert.Equal("x", m.GameId);
|
||||
Assert.Equal(1, m.Version);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(@"{""version"":1,""serverEntryType"":""a"",""serverAssembly"":""a.dll""}")] // 缺 gameId
|
||||
[InlineData(@"{""gameId"":""x"",""version"":1,""serverAssembly"":""a.dll""}")] // 缺 entryType
|
||||
[InlineData(@"{""gameId"":""x"",""version"":0,""serverEntryType"":""a"",""serverAssembly"":""a.dll""}")] // version 非正
|
||||
[InlineData(@"{""gameId"":""x"",""version"":1,""serverEntryType"":""a""}")] // 缺 serverAssembly
|
||||
public void Parse_Invalid_Throws(string json)
|
||||
{
|
||||
Assert.Throws<InvalidDataException>(() => GameManifest.Parse(json));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user