DisplayMessageCommandTests.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using NUnit.Framework;
  2. using UnityEngine;
  3. using UnityEngine.TestTools;
  4. using LLM.Editor.Commands;
  5. using LLM.Editor.Data;
  6. using LLM.Editor.Helper;
  7. namespace LLM.Editor.Tests.Unit
  8. {
  9. [TestFixture]
  10. public class DisplayMessageCommandTests
  11. {
  12. private CommandContext _context;
  13. [SetUp]
  14. public void SetUp()
  15. {
  16. _context = new CommandContext();
  17. }
  18. [Test]
  19. public void Execute_WithSuccessOutcome_LogsInfoMessage()
  20. {
  21. // Arrange
  22. var message = "This is a success message.";
  23. var parameters = new DisplayMessageParams { outcome = CommandOutcome.Success, message = message };
  24. var command = new DisplayMessageCommand(parameters.ToJson());
  25. // Assert that a green log message is expected
  26. LogAssert.Expect(LogType.Log, $"<color=green>[MCP]: {message}</color>");
  27. // Act
  28. var outcome = command.Execute(_context);
  29. // Assert
  30. Assert.AreEqual(CommandOutcome.Success, outcome);
  31. }
  32. [Test]
  33. public void Execute_WithErrorOutcome_LogsErrorMessage()
  34. {
  35. // Arrange
  36. var message = "This is an error message.";
  37. var parameters = new DisplayMessageParams { outcome = CommandOutcome.Error, message = message };
  38. var command = new DisplayMessageCommand(parameters.ToJson());
  39. // Assert that a red error log message is expected
  40. LogAssert.Expect(LogType.Error, $"<color=red>[MCP]: {message}</color>");
  41. // Act
  42. var outcome = command.Execute(_context);
  43. // Assert
  44. Assert.AreEqual(CommandOutcome.Success, outcome, "The command itself should succeed even when displaying an error.");
  45. }
  46. [Test]
  47. public void Execute_WithEmptyMessage_ReturnsError()
  48. {
  49. // Arrange
  50. var parameters = new DisplayMessageParams { outcome = CommandOutcome.Success, message = "" };
  51. var command = new DisplayMessageCommand(parameters.ToJson());
  52. // Assert
  53. LogAssert.Expect(LogType.Error, "[DisplayMessageCommand] Parameters are invalid or message is empty.");
  54. // Act
  55. var outcome = command.Execute(_context);
  56. // Assert
  57. Assert.AreEqual(CommandOutcome.Error, outcome);
  58. }
  59. [Test]
  60. public void Execute_WithNullParams_ReturnsError()
  61. {
  62. // Arrange
  63. var command = new DisplayMessageCommand((string)null);
  64. // Assert
  65. LogAssert.Expect(LogType.Error, "[DisplayMessageCommand] Parameters are invalid or message is empty.");
  66. // Act
  67. var outcome = command.Execute(_context);
  68. // Assert
  69. Assert.AreEqual(CommandOutcome.Error, outcome);
  70. }
  71. }
  72. }