FindInSceneProviderTests.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using NUnit.Framework;
  2. using UnityEngine;
  3. using LLM.Editor.Analysis;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. namespace LLM.Editor.Tests.Unit
  7. {
  8. [TestFixture]
  9. public class FindInSceneProviderTests
  10. {
  11. private GameObject _playerObject;
  12. private GameObject _enemyObject;
  13. private GameObject _cameraObject;
  14. [SetUp]
  15. public void SetUp()
  16. {
  17. _playerObject = new GameObject("Player");
  18. _enemyObject = new GameObject("Enemy_Orc");
  19. _cameraObject = new GameObject("Main Camera");
  20. _playerObject.AddComponent<Rigidbody>();
  21. _playerObject.tag = "Player";
  22. _cameraObject.AddComponent<Camera>();
  23. }
  24. [TearDown]
  25. public void TearDown()
  26. {
  27. if (_playerObject != null) Object.DestroyImmediate(_playerObject);
  28. if (_enemyObject != null) Object.DestroyImmediate(_enemyObject);
  29. if (_cameraObject != null) Object.DestroyImmediate(_cameraObject);
  30. }
  31. [Test]
  32. public void GetContext_FindsByName_Successfully()
  33. {
  34. // Arrange
  35. var provider = new FindInSceneProvider();
  36. // Act
  37. var context = provider.GetContext(null, "name: Player");
  38. // Assert
  39. Assert.IsInstanceOf<List<FindInSceneProvider.SceneQueryResult>>(context);
  40. var results = (List<FindInSceneProvider.SceneQueryResult>)context;
  41. Assert.AreEqual(1, results.Count);
  42. Assert.AreEqual("Player", results[0].name);
  43. }
  44. [Test]
  45. public void GetContext_FindsByNameWithWildcard_Successfully()
  46. {
  47. // Arrange
  48. var provider = new FindInSceneProvider();
  49. // Act
  50. var context = provider.GetContext(null, "name: Enemy*");
  51. // Assert
  52. Assert.IsInstanceOf<List<FindInSceneProvider.SceneQueryResult>>(context);
  53. var results = (List<FindInSceneProvider.SceneQueryResult>)context;
  54. Assert.AreEqual(1, results.Count);
  55. Assert.AreEqual("Enemy_Orc", results[0].name);
  56. }
  57. [Test]
  58. public void GetContext_FindsByComponent_Successfully()
  59. {
  60. // Arrange
  61. var provider = new FindInSceneProvider();
  62. // Act
  63. var context = provider.GetContext(null, "component: UnityEngine.Rigidbody");
  64. // Assert
  65. Assert.IsInstanceOf<List<FindInSceneProvider.SceneQueryResult>>(context);
  66. var results = (List<FindInSceneProvider.SceneQueryResult>)context;
  67. Assert.AreEqual(1, results.Count);
  68. Assert.AreEqual("Player", results[0].name);
  69. }
  70. [Test]
  71. public void GetContext_FindsByTag_Successfully()
  72. {
  73. // Arrange
  74. var provider = new FindInSceneProvider();
  75. // Act
  76. var context = provider.GetContext(null, "tag: Player");
  77. // Assert
  78. Assert.IsInstanceOf<List<FindInSceneProvider.SceneQueryResult>>(context);
  79. var results = (List<FindInSceneProvider.SceneQueryResult>)context;
  80. Assert.AreEqual(1, results.Count);
  81. Assert.AreEqual("Player", results[0].name);
  82. }
  83. [Test]
  84. public void GetContext_WithNoResults_ReturnsEmptyList()
  85. {
  86. // Arrange
  87. var provider = new FindInSceneProvider();
  88. // Act
  89. var context = provider.GetContext(null, "name: NonExistentObject");
  90. // Assert
  91. Assert.IsInstanceOf<List<FindInSceneProvider.SceneQueryResult>>(context);
  92. var results = (List<FindInSceneProvider.SceneQueryResult>)context;
  93. Assert.AreEqual(0, results.Count);
  94. }
  95. }
  96. }