mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-27 07:59:03 -07:00
Radicade Public Code
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using RadicadeServer.RecNet.Avatar;
|
||||
using Xunit;
|
||||
|
||||
namespace RadicadeServer.Tests;
|
||||
|
||||
public class AvatarWireFormatTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("8aa79563-ace1-4ba7-ad0c-f3210a78142f,", "8aa79563-ace1-4ba7-ad0c-f3210a78142f,")]
|
||||
[InlineData("prefab,material", "prefab,material")]
|
||||
[InlineData("prefab,material,", "prefab,material,")]
|
||||
[InlineData("prefab,first,second,", "prefab,first,second,")]
|
||||
[InlineData("prefab,,second,", "prefab,,second,")]
|
||||
public void V4PreservesTheExactMaterialCombinationKey(string catalogKey, string selectionKey)
|
||||
{
|
||||
var dto = new AvatarItemV4(new AvatarItem { AvatarItemDesc = catalogKey });
|
||||
var json = System.Text.Json.JsonSerializer.SerializeToElement(dto);
|
||||
Assert.Equal(selectionKey, json.GetProperty("AvatarItemDesc").GetString());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ScreenshotShirtSurvivesCatalogToWireConversion()
|
||||
{
|
||||
var catalog = File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "Fixtures", "2022-avatar.json"));
|
||||
var shirt = AvatarUnlockCatalog.ParseCatalog(catalog)
|
||||
.Single(item => item.AvatarItemDesc == "8aa79563-ace1-4ba7-ad0c-f3210a78142f,");
|
||||
Assert.Equal("8aa79563-ace1-4ba7-ad0c-f3210a78142f,", new AvatarItemV4(shirt).AvatarItemDesc);
|
||||
Assert.True(shirt.AvatarItemId > 0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BaseEndpointDoesNotReclassifyClothingAsHiddenBodyParts()
|
||||
{
|
||||
var originalCatalog = DBConfig.DefaultAvatarCatalog;
|
||||
var originalLookup = DBConfig.ResolvableAvatarItemDescs;
|
||||
try
|
||||
{
|
||||
DBConfig.DefaultAvatarCatalog = """
|
||||
[{"AvatarItemDesc":"shirt,","IsBaseAvatarItem":false},
|
||||
{"AvatarItemDesc":"base-body,","IsBaseAvatarItem":true}]
|
||||
""";
|
||||
DBConfig.ResolvableAvatarItemDescs = new HashSet<string>();
|
||||
// These endpoints do not access the database.
|
||||
var api = new RadicadeServer.API.Avatars.V1.AvatarV1(null!);
|
||||
var response = Assert.IsType<Microsoft.AspNetCore.Mvc.OkObjectResult>(api.GetDefaultBaseAvatarItems());
|
||||
var baseItems = Assert.IsType<List<AvatarItem>>(response.Value);
|
||||
Assert.Equal("base-body,", Assert.Single(baseItems).AvatarItemDesc);
|
||||
Assert.DoesNotContain(api.GetDefaultUnlocks(), item => item.AvatarItemDesc == "shirt,");
|
||||
Assert.Contains(api.GetDefaultUnlocks(), item => item.AvatarItemDesc == "base-body,");
|
||||
}
|
||||
finally
|
||||
{
|
||||
DBConfig.DefaultAvatarCatalog = originalCatalog;
|
||||
DBConfig.ResolvableAvatarItemDescs = originalLookup;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user