DirectoryStructureProviderTests.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System.IO;
  2. using UnityEngine;
  3. using NUnit.Framework;
  4. using LLM.Editor.Analysis;
  5. namespace LLM.Editor.Tests.Unit
  6. {
  7. [TestFixture]
  8. public class DirectoryStructureProviderTests
  9. {
  10. private static string TestRoot => Path.Combine(TestConstants.TestPath, "DirTest");
  11. private const string SubFolder = "SubFolder";
  12. private const string TestFile = "TestFile.txt";
  13. private string _testRootPath;
  14. [SetUp]
  15. public void SetUp()
  16. {
  17. _testRootPath = Path.Combine(Application.dataPath, TestRoot);
  18. Directory.CreateDirectory(_testRootPath);
  19. Directory.CreateDirectory(Path.Combine(_testRootPath, SubFolder));
  20. File.WriteAllText(Path.Combine(_testRootPath, TestFile), "test");
  21. UnityEditor.AssetDatabase.Refresh();
  22. }
  23. [TearDown]
  24. public void TearDown()
  25. {
  26. if (!Directory.Exists(_testRootPath)) return;
  27. Directory.Delete(_testRootPath, true);
  28. File.Delete(_testRootPath + ".meta");
  29. UnityEditor.AssetDatabase.Refresh();
  30. }
  31. [Test]
  32. public void GetContext_WithValidPath_ReturnsDirectoryContents()
  33. {
  34. // Arrange
  35. var provider = new DirectoryStructureProvider();
  36. // Act
  37. var context = provider.GetContext(null, TestRoot);
  38. // Assert
  39. Assert.IsInstanceOf<DirectoryStructureProvider.DirectoryContents>(context);
  40. var contents = (DirectoryStructureProvider.DirectoryContents)context;
  41. Assert.AreEqual(1, contents.directories.Count);
  42. Assert.AreEqual(SubFolder, contents.directories[0]);
  43. Assert.AreEqual(1, contents.files.Count);
  44. Assert.AreEqual(TestFile, contents.files[0]);
  45. }
  46. [Test]
  47. public void GetContext_WithNullQualifier_ReturnsAssetsRootContents()
  48. {
  49. // Arrange
  50. var provider = new DirectoryStructureProvider();
  51. // Act
  52. var context = provider.GetContext(null, null);
  53. // Assert
  54. Assert.IsInstanceOf<DirectoryStructureProvider.DirectoryContents>(context);
  55. var contents = (DirectoryStructureProvider.DirectoryContents)context;
  56. // Check that the test folder we created is present in the root listing
  57. Assert.Contains(TestRoot, contents.directories);
  58. }
  59. [Test]
  60. public void GetContext_WithInvalidPath_ReturnsErrorString()
  61. {
  62. // Arrange
  63. var provider = new DirectoryStructureProvider();
  64. var invalidPath = Path.Combine(TestRoot, "InvalidFolder");
  65. // Act
  66. var context = provider.GetContext(null, invalidPath);
  67. // Assert
  68. Assert.IsInstanceOf<string>(context);
  69. Assert.IsTrue(((string)context).StartsWith("Error: Directory does not exist"));
  70. }
  71. }
  72. }