using NUnit.Framework;
using LLM.Editor.Analysis;

namespace LLM.Editor.Tests.Unit
{
    [TestFixture]
    public class TagsAndLayersProviderTests
    {
        [Test]
        public void GetContext_ReturnsCurrentProjectTagsAndLayers()
        {
            // Arrange
            var provider = new TagsAndLayersProvider();

            // Act
            var context = provider.GetContext(null, null);
            Assert.IsInstanceOf<TagsAndLayersProvider.TagsAndLayersResult>(context);
            var contents = (TagsAndLayersProvider.TagsAndLayersResult)context;
            var tags = contents.tags;
            var layers = contents.layers;

            // Assert
            // Check for the existence of common, default tags and layers.
            // This makes the test robust without being overly specific about the exact list.
            Assert.IsNotNull(tags);
            Assert.IsNotNull(layers);
            
            Assert.Contains("Untagged", tags);
            Assert.Contains("Player", tags);

            Assert.Contains("Default", layers);
            Assert.Contains("UI", layers);
            Assert.Contains("Water", layers);
        }
    }
}
