ProjectSettingsProviderTests.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using UnityEngine;
  2. using NUnit.Framework;
  3. using LLM.Editor.Analysis;
  4. using System.Collections.Generic;
  5. namespace LLM.Editor.Tests.Unit
  6. {
  7. [TestFixture]
  8. public class ProjectSettingsProviderTests
  9. {
  10. private ProjectSettingsProvider _provider;
  11. [SetUp]
  12. public void SetUp()
  13. {
  14. _provider = new ProjectSettingsProvider();
  15. }
  16. [Test]
  17. public void GetContext_WithValidSettings_ReturnsSettingsDictionary()
  18. {
  19. // Arrange
  20. var qualifier = "QualitySettings";
  21. // Act
  22. var context = _provider.GetContext(null, qualifier);
  23. // Assert
  24. Assert.IsInstanceOf<Dictionary<string, object>>(context);
  25. var settings = (Dictionary<string, object>)context;
  26. // Check for a known property in QualitySettings
  27. Assert.IsTrue(settings.ContainsKey("currentLevel"));
  28. Assert.AreEqual(QualitySettings.GetQualityLevel(), (int)settings["currentLevel"]);
  29. }
  30. [Test]
  31. public void GetContext_WithAnotherValidSettings_ReturnsTimeManagerData()
  32. {
  33. // Arrange
  34. var qualifier = "TimeManager";
  35. // Act
  36. var context = _provider.GetContext(null, qualifier);
  37. // Assert
  38. Assert.IsInstanceOf<Dictionary<string, object>>(context);
  39. var settings = (Dictionary<string, object>)context;
  40. // Check for a known property in TimeManager using its programmatic C# name.
  41. Assert.IsTrue(settings.ContainsKey("fixedDeltaTime"));
  42. Assert.AreEqual(Time.fixedDeltaTime, (float)(double)settings["fixedDeltaTime"], 0.0001f);
  43. }
  44. [Test]
  45. public void GetContext_WithInvalidSettings_ReturnsErrorString()
  46. {
  47. // Arrange
  48. var qualifier = "NonExistentSettingsFile";
  49. // Act
  50. var context = _provider.GetContext(null, qualifier);
  51. // Assert
  52. Assert.IsInstanceOf<string>(context);
  53. Assert.IsTrue(((string)context).StartsWith("Error: Could not find project settings file"));
  54. }
  55. [Test]
  56. public void GetContext_WithNullQualifier_ReturnsErrorString()
  57. {
  58. // Arrange & Act
  59. var context = _provider.GetContext(null, null);
  60. // Assert
  61. Assert.IsInstanceOf<string>(context);
  62. Assert.IsTrue(((string)context).StartsWith("Error: A settings asset name (qualifier) is required"));
  63. }
  64. }
  65. }