45 lines
1.7 KiB
C#
45 lines
1.7 KiB
C#
using Xunit;
|
|
using XWorld.PublishTool;
|
|
|
|
namespace XWorld.PublishTool.Tests
|
|
{
|
|
public class GameSpecJsonTests
|
|
{
|
|
[Fact]
|
|
public void Parse_LowercaseKeys_FillsAllFields()
|
|
{
|
|
// Editor 侧 JsonUtility 输出小写字段名;解析须大小写不敏感、含 fields
|
|
string json = @"{
|
|
""gameId"": ""rps"", ""version"": 3, ""minFrameworkVersion"": 1,
|
|
""playerCount"": 2, ""tickRateHz"": 10,
|
|
""serverAssembly"": ""RPS.Server.dll"", ""serverEntryType"": ""RPS.Server.RpsServerRoom"",
|
|
""coreDll"": ""RPS.Core.dll"", ""clientDll"": ""RPS.Client.dll"",
|
|
""clientEntryType"": ""RPS.Client.RpsGameClient"",
|
|
""codeAb"": ""code.unity3d"", ""assets"": [""res.unity3d""]
|
|
}";
|
|
var s = GameSpecJson.Parse(json);
|
|
Assert.Equal("rps", s.GameId);
|
|
Assert.Equal(3, s.Version);
|
|
Assert.Equal(1, s.MinFrameworkVersion);
|
|
Assert.Equal(2, s.PlayerCount);
|
|
Assert.Equal(10, s.TickRateHz);
|
|
Assert.Equal("RPS.Server.dll", s.ServerAssembly);
|
|
Assert.Equal("RPS.Server.RpsServerRoom", s.ServerEntryType);
|
|
Assert.Equal("RPS.Core.dll", s.CoreDll);
|
|
Assert.Equal("RPS.Client.dll", s.ClientDll);
|
|
Assert.Equal("RPS.Client.RpsGameClient", s.ClientEntryType);
|
|
Assert.Equal("code.unity3d", s.CodeAb);
|
|
Assert.Single(s.Assets);
|
|
Assert.Equal("res.unity3d", s.Assets[0]);
|
|
}
|
|
|
|
[Fact]
|
|
public void Parse_MissingAssets_YieldsEmptyList_NotNull()
|
|
{
|
|
var s = GameSpecJson.Parse(@"{""gameId"":""x"",""version"":1,""codeAb"":""code.unity3d""}");
|
|
Assert.NotNull(s.Assets);
|
|
Assert.Empty(s.Assets);
|
|
}
|
|
}
|
|
}
|