48 lines
1.9 KiB
C#
48 lines
1.9 KiB
C#
|
|
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"]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|