using System.Text.Json; using Moq; using ZB.MOM.WW.ScadaBridge.Commons.Entities.Templates; using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Repositories; using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Services; using ZB.MOM.WW.ScadaBridge.Commons.Types.Templates; using static ZB.MOM.WW.ScadaBridge.TemplateEngine.Tests.TemplateReconcileClosureTests; namespace ZB.MOM.WW.ScadaBridge.TemplateEngine.Tests; /// /// Gitea #89: the last two whole-library template reads — the operator resync /// () and the read-only resolved-members /// query — now read only what the inheritance resolver walks: the resync reuses #86's reconcile /// closure (subtree + chain), falling back to the template's own chain when nothing derives from /// it, and resolved-members reads the chain alone. Pinned against the #86 fixture (deep subtree, /// ancestors above the edited template, a composed module, look-alike unrelated trees, a parent /// cycle, a dangling parent). /// public class TemplateChainReadTests { private static Task> Chain( IReadOnlyList