NavisworksTransport/UnitTests/CoordinateSystem/DocumentKeyContextTests.cs
tian 29da68f6d3 refactor: 清理方法5 fragment 矩阵分析依赖链(保留坐标系检测其余方法)
删除(fragment 矩阵分析诊断链):
- SystemManagementViewModel: 方法5 文本块、AnalyzeFragmentOrientations、
  AppendFragmentAnalysis、FragmentOrientationAnalysis 类
- FragmentRepresentativePoseHelper.cs(TryGetRepresentativeFrame 无调用者)
- RealObjectReferencePoseResolver.cs(TryDetectDefaultUpAxis 只被方法5 用)
- FragmentRepresentativePoseHelperTests.cs
- FragmentDefaultUpContext: 删 GetCurrentHostUpAxis / GetCurrentDocumentFragmentDefaultUpAxis /
  IsSupportedAxis(均无调用者)

保留:
- 坐标系检测 方法1/2/3/4/6(文档级检测)
- 真实物体变换诊断(TransformDiagnosticInfo 保留,轴可视化 fallback
  到几何后代/选中节点 Transform,不再用 fragment)
- FragmentDefaultUpContext 改名 DocumentKeyContext(仅文档 key 缓存,
  用于模型根旋转提示;名字不再含 fragment)

验证:单元测试 185/185、集成测试 25/25
2026-08-06 00:09:08 +08:00

48 lines
1.4 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using NavisworksTransport.Utils.CoordinateSystem;
namespace NavisworksTransport.UnitTests.CoordinateSystem
{
[TestClass]
public class DocumentKeyContextTests
{
[TestInitialize]
public void SetUp()
{
DocumentKeyContext.ResetForTests();
}
[TestMethod]
public void GetOrCreateDocumentKey_ReusesFirstStableKey_WhenDocumentMetadataTemporarilyChanges()
{
const int runtimeDocumentId = 42;
string initialKey = DocumentKeyContext.GetOrCreateDocumentKey(
runtimeDocumentId,
@"C:\models\floor2.nwd",
"Floor2");
string transientKey = DocumentKeyContext.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 = DocumentKeyContext.GetOrCreateDocumentKey(
runtimeDocumentId,
string.Empty,
"无标题");
Assert.AreEqual("runtime:7|title:无标题", key);
}
}
}