using Microsoft.VisualStudio.TestTools.UnitTesting;
using NavisworksTransport.Utils.CoordinateSystem;

namespace NavisworksTransport.UnitTests.CoordinateSystem
{
    [TestClass]
    public class FragmentDefaultUpContextTests
    {
        [TestInitialize]
        public void SetUp()
        {
            FragmentDefaultUpContext.ResetForTests();
        }

        [TestMethod]
        public void GetOrCreateDocumentKey_ReusesFirstStableKey_WhenDocumentMetadataTemporarilyChanges()
        {
            const int runtimeDocumentId = 42;

            string initialKey = FragmentDefaultUpContext.GetOrCreateDocumentKey(
                runtimeDocumentId,
                @"C:\models\floor2.nwd",
                "Floor2");

            string transientKey = FragmentDefaultUpContext.GetOrCreateDocumentKey(
                runtimeDocumentId,
                string.Empty,
                "无标题");

            Assert.AreEqual(initialKey, transientKey);
            Assert.AreEqual("file:C:\\models\\floor2.nwd", transientKey);
        }

        [TestMethod]
        public void GetOrCreateDocumentKey_UsesRuntimeScopedFallback_WhenFileNameIsUnavailable()
        {
            const int runtimeDocumentId = 7;

            string key = FragmentDefaultUpContext.GetOrCreateDocumentKey(
                runtimeDocumentId,
                string.Empty,
                "无标题");

            Assert.AreEqual("runtime:7|title:无标题", key);
        }
    }
}
