12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using NUnit.Framework;
- using UnityEngine;
- using UnityEditor;
- using System.IO;
- using LLM.Editor.Commands;
- using LLM.Editor.Data;
- using LLM.Editor.Helper;
- using UnityEngine.TestTools;
- namespace LLM.Editor.Tests.Unit
- {
- [TestFixture]
- public class EditScriptCommandTests
- {
- private const string TestScriptName = "TempEditTestScript.cs";
- private string _testScriptPath;
- private string _testScriptGuid;
- private CommandContext _context;
- [SetUp]
- public void SetUp()
- {
- _context = new CommandContext();
- _testScriptPath = Path.Combine(Application.dataPath, TestScriptName);
-
- // Create a dummy script file for testing
- File.WriteAllText(_testScriptPath, "public class OldContent {}");
- AssetDatabase.Refresh();
- _testScriptGuid = AssetDatabase.AssetPathToGUID($"Assets/{TestScriptName}");
- Assert.IsFalse(string.IsNullOrEmpty(_testScriptGuid), "Setup failed: Could not get GUID for test script.");
- }
- [TearDown]
- public void TearDown()
- {
- // Clean up the dummy script
- if (File.Exists(_testScriptPath))
- {
- File.Delete(_testScriptPath);
- File.Delete(_testScriptPath + ".meta");
- AssetDatabase.Refresh();
- }
- }
- [Test]
- public void Execute_WithValidInput_OverwritesScriptContent()
- {
- // Arrange
- var newContent = "public class NewContent {}";
- var parameters = new EditScriptParams { scriptIdentifier = _testScriptGuid, newScriptContent = newContent };
- var command = new EditScriptCommand(parameters.ToJson());
- // Act
- var outcome = command.Execute(_context);
- // Assert
- Assert.AreEqual(CommandOutcome.Success, outcome);
- var fileContent = File.ReadAllText(_testScriptPath);
- Assert.AreEqual(newContent, fileContent);
- }
- [Test]
- public void Execute_WithInvalidGuid_ReturnsError()
- {
- // Arrange
- var parameters = new EditScriptParams { scriptIdentifier = "InvalidGuid", newScriptContent = "some content" };
- var command = new EditScriptCommand(parameters.ToJson());
- LogAssert.Expect(LogType.Error, "[EditScriptCommand] Could not find a valid script with GUID 'InvalidGuid'.");
- // Act
- var outcome = command.Execute(_context);
- // Assert
- Assert.AreEqual(CommandOutcome.Error, outcome);
- }
- [Test]
- public void Execute_WithEmptyContent_ReturnsError()
- {
- // Arrange
- var parameters = new EditScriptParams { scriptIdentifier = _testScriptGuid, newScriptContent = "" };
- var command = new EditScriptCommand(parameters.ToJson());
-
- LogAssert.Expect(LogType.Error, "[EditScriptCommand] Invalid parameters. Script identifier and new content are required.");
- // Act
- var outcome = command.Execute(_context);
- // Assert
- Assert.AreEqual(CommandOutcome.Error, outcome);
- }
- }
- }
|