Skip to main content
Glama
ReadConsoleTests.cs3.46 kB
using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; using NUnit.Framework; using UnityEditor; using UnityEngine; using MCPForUnity.Editor.Tools; using MCPForUnity.Editor.Helpers; namespace MCPForUnityTests.Editor.Tools { public class ReadConsoleTests { [Test] public void HandleCommand_Clear_Works() { // Arrange // Ensure there's something to clear Debug.Log("Log to clear"); // Verify content exists before clear var getBefore = ToJObject(ReadConsole.HandleCommand(new JObject { ["action"] = "get", ["count"] = 10 })); Assert.IsTrue(getBefore.Value<bool>("success"), getBefore.ToString()); var entriesBefore = getBefore["data"] as JArray; // Ideally we'd assert count > 0, but other tests/system logs might affect this. // Just ensuring the call doesn't fail is a baseline, but let's try to be stricter if possible. // Since we just logged, there should be at least one entry. Assert.IsTrue(entriesBefore != null && entriesBefore.Count > 0, "Setup failed: console should have logs."); // Act var result = ToJObject(ReadConsole.HandleCommand(new JObject { ["action"] = "clear" })); // Assert Assert.IsTrue(result.Value<bool>("success"), result.ToString()); // Verify clear effect var getAfter = ToJObject(ReadConsole.HandleCommand(new JObject { ["action"] = "get", ["count"] = 10 })); Assert.IsTrue(getAfter.Value<bool>("success"), getAfter.ToString()); var entriesAfter = getAfter["data"] as JArray; Assert.IsTrue(entriesAfter == null || entriesAfter.Count == 0, "Console should be empty after clear."); } [Test] public void HandleCommand_Get_Works() { // Arrange string uniqueMessage = $"Test Log Message {Guid.NewGuid()}"; Debug.Log(uniqueMessage); var paramsObj = new JObject { ["action"] = "get", ["count"] = 1000 // Fetch enough to likely catch our message }; // Act var result = ToJObject(ReadConsole.HandleCommand(paramsObj)); // Assert Assert.IsTrue(result.Value<bool>("success"), result.ToString()); var data = result["data"] as JArray; Assert.IsNotNull(data, "Data array should not be null."); Assert.IsTrue(data.Count > 0, "Should retrieve at least one log entry."); // Verify content bool found = false; foreach (var entry in data) { if (entry["message"]?.ToString().Contains(uniqueMessage) == true) { found = true; break; } } Assert.IsTrue(found, $"The unique log message '{uniqueMessage}' was not found in retrieved logs."); } private static JObject ToJObject(object result) { if (result == null) { Assert.Fail("ReadConsole.HandleCommand returned null."); return new JObject(); // Unreachable, but satisfies return type. } return result as JObject ?? JObject.FromObject(result); } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CoplayDev/unity-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server