EditorStateProviderTests.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using NUnit.Framework;
  2. using UnityEditor;
  3. using LLM.Editor.Analysis;
  4. using System.Collections;
  5. using UnityEngine.TestTools;
  6. namespace LLM.Editor.Tests.Unit
  7. {
  8. [TestFixture]
  9. public class EditorStateProviderTests
  10. {
  11. private EditorStateProvider _provider;
  12. [SetUp]
  13. public void SetUp()
  14. {
  15. _provider = new EditorStateProvider();
  16. // Ensure we are in Edit Mode before each test
  17. if (EditorApplication.isPlayingOrWillChangePlaymode)
  18. {
  19. EditorApplication.ExitPlaymode();
  20. }
  21. }
  22. [Test]
  23. public void GetContext_WhenInEditMode_ReturnsEditMode()
  24. {
  25. // Act
  26. var context = _provider.GetContext(null, null);
  27. Assert.IsInstanceOf<EditorStateProvider.EditorStateResult>(context);
  28. var contents = (EditorStateProvider.EditorStateResult)context;
  29. // Assert
  30. Assert.AreEqual("EditMode", contents.currentState);
  31. }
  32. [UnityTest]
  33. public IEnumerator GetContext_WhenInPlayMode_ReturnsPlayMode()
  34. {
  35. // Arrange
  36. yield return new EnterPlayMode();
  37. // Act
  38. var context = _provider.GetContext(null, null);
  39. Assert.IsInstanceOf<EditorStateProvider.EditorStateResult>(context);
  40. var contents = (EditorStateProvider.EditorStateResult)context;
  41. // Assert
  42. Assert.AreEqual("PlayMode", contents.currentState);
  43. yield return new ExitPlayMode();
  44. }
  45. [UnityTest]
  46. public IEnumerator GetContext_WhenPaused_ReturnsPaused()
  47. {
  48. // Arrange
  49. yield return new EnterPlayMode();
  50. EditorApplication.isPaused = true;
  51. // Act
  52. var context = _provider.GetContext(null, null);
  53. Assert.IsInstanceOf<EditorStateProvider.EditorStateResult>(context);
  54. var contents = (EditorStateProvider.EditorStateResult)context;
  55. // Assert
  56. Assert.AreEqual("Paused", contents.currentState);
  57. // Cleanup
  58. EditorApplication.isPaused = false;
  59. yield return new ExitPlayMode();
  60. }
  61. }
  62. }