diff --git a/LibreMetaverse.Tests/InventoryManagerTests.cs b/LibreMetaverse.Tests/InventoryManagerTests.cs index 3a793d3d..46252ab8 100644 --- a/LibreMetaverse.Tests/InventoryManagerTests.cs +++ b/LibreMetaverse.Tests/InventoryManagerTests.cs @@ -90,5 +90,31 @@ public void CreateInventoryItem_ReturnsCorrectSubclass() Assert.That(unknown, Is.InstanceOf()); } } + + [TestCase(23, "Widget", "widget")] + [TestCase(24, "Person", "person")] + [TestCase(25, "Settings", "settings")] + [TestCase(26, "Material", "material")] + [TestCase(27, "GLTF", "gltf")] + [TestCase(28, "GLTFBin", "glbin")] + public void InventoryTypeCanonicalTail_HasExpectedWireValueAndName(int value, string enumName, string wireName) + { + var inventoryType = (InventoryType)value; + + using (Assert.EnterMultipleScope()) + { + Assert.That(Enum.GetName(typeof(InventoryType), inventoryType), Is.EqualTo(enumName)); + Assert.That(Utils.InventoryTypeToString(inventoryType), Is.EqualTo(wireName)); + Assert.That(Utils.StringToInventoryType(wireName), Is.EqualTo(inventoryType)); + } + } + + [Test] + public void CreateInventoryItem_MaterialWireValue_ReturnsMaterial() + { + var item = InventoryManager.CreateInventoryItem((InventoryType)26, UUID.Random()); + + Assert.That(item, Is.InstanceOf()); + } } } diff --git a/LibreMetaverse.Types/Enums.cs b/LibreMetaverse.Types/Enums.cs index 478bfefb..59a0689c 100644 --- a/LibreMetaverse.Types/Enums.cs +++ b/LibreMetaverse.Types/Enums.cs @@ -297,10 +297,18 @@ public enum InventoryType : sbyte Gesture = 20, /// Mesh = 22, - /// - Settings = 23, - /// - Material = 24, + /// Widget + Widget = 23, + /// Person + Person = 24, + /// Settings + Settings = 25, + /// Render material + Material = 26, + /// glTF asset + GLTF = 27, + /// Binary glTF asset + GLTFBin = 28, } /// diff --git a/LibreMetaverse.Types/UtilsConversions.cs b/LibreMetaverse.Types/UtilsConversions.cs index d1bd64cc..f2ce42e8 100644 --- a/LibreMetaverse.Types/UtilsConversions.cs +++ b/LibreMetaverse.Types/UtilsConversions.cs @@ -171,7 +171,13 @@ public static partial class Utils "animation", // 19 "gesture", // 20 string.Empty, // 21 - "mesh" // 22 + "mesh", // 22 + "widget", // 23 + "person", // 24 + "settings", // 25 + "material", // 26 + "gltf", // 27 + "glbin" // 28 }; private static readonly string[] _SaleTypeNames = {