using StellaOps.AirGap.Importer.Contracts; using StellaOps.AirGap.Importer.Planning; namespace StellaOps.AirGap.Importer.Tests; public class BundleImportPlannerTests { [Fact] public void ReturnsFailureWhenBundlePathMissing() { var planner = new BundleImportPlanner(); var result = planner.CreatePlan(string.Empty, TrustRootConfig.Empty("/tmp")); Assert.False(result.InitialState.IsValid); Assert.Equal("bundle-path-required", result.InitialState.Reason); } [Fact] public void ReturnsFailureWhenTrustRootsMissing() { var planner = new BundleImportPlanner(); var result = planner.CreatePlan("bundle.tar", TrustRootConfig.Empty("/tmp")); Assert.False(result.InitialState.IsValid); Assert.Equal("trust-roots-required", result.InitialState.Reason); } [Fact] public void ReturnsDefaultPlanWhenInputsProvided() { var planner = new BundleImportPlanner(); var trust = new TrustRootConfig("/tmp/trust.json", new[] { "abc" }, new[] { "ed25519" }, null, null, new Dictionary()); var result = planner.CreatePlan("bundle.tar", trust); Assert.True(result.InitialState.IsValid); Assert.Contains("verify-dsse-signature", result.Steps); Assert.Equal("bundle.tar", result.Inputs["bundlePath"]); } }