unity-mcp/TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools/MenuItems/ManageMenuItemTests.cs

48 lines
1.9 KiB
C#
Raw Normal View History

using NUnit.Framework;
using Newtonsoft.Json.Linq;
using MCPForUnity.Editor.Tools.MenuItems;
namespace MCPForUnityTests.Editor.Tools.MenuItems
{
public class ManageMenuItemTests
{
private static JObject ToJO(object o) => JObject.FromObject(o);
[Test]
public void HandleCommand_UnknownAction_ReturnsError()
{
var res = ManageMenuItem.HandleCommand(new JObject { ["action"] = "unknown_action" });
var jo = ToJO(res);
Assert.IsFalse((bool)jo["success"], "Expected success false for unknown action");
StringAssert.Contains("Unknown action", (string)jo["error"]);
}
[Test]
public void HandleCommand_List_RoutesAndReturnsArray()
{
var res = ManageMenuItem.HandleCommand(new JObject { ["action"] = "list" });
var jo = ToJO(res);
Assert.IsTrue((bool)jo["success"], "Expected success true");
Assert.AreEqual(JTokenType.Array, jo["data"].Type, "Expected data to be an array");
}
[Test]
public void HandleCommand_Execute_Blacklisted_RoutesAndErrors()
{
var res = ManageMenuItem.HandleCommand(new JObject { ["action"] = "execute", ["menuPath"] = "File/Quit" });
var jo = ToJO(res);
Assert.IsFalse((bool)jo["success"], "Expected success false");
StringAssert.Contains("blocked for safety", (string)jo["error"], "Expected blacklist message");
}
[Test]
public void HandleCommand_Exists_MissingParam_ReturnsError()
{
var res = ManageMenuItem.HandleCommand(new JObject { ["action"] = "exists" });
var jo = ToJO(res);
Assert.IsFalse((bool)jo["success"], "Expected success false when missing menuPath");
StringAssert.Contains("Required parameter", (string)jo["error"]);
}
}
}