using ZB.MOM.WW.ScadaBridge.Commons.Types.Debugging;
using ZB.MOM.WW.ScadaBridge.ScriptAnalysis;
namespace ZB.MOM.WW.ScadaBridge.ScriptAnalysis.Tests;
///
/// Tests for (Flow Debugger design 2026-09-05 §5.5) against
/// the Delmia recipe-download scripts verbatim from
/// docs/api-specs/Delmia-Recipe-Download-API.md §4.
///
public class FlowShapePredictorTests
{
private const string DelmiaMethodScript = """
try {
System.Func P = k => Parameters.ContainsKey(k) ? Parameters[k] : null;
var code = (P("MachineCode") as string ?? "").Trim();
if (string.IsNullOrEmpty(code)) return new { Result = false, ResultText = "MachineCode is required" };
var suf = code.Substring(code.Length - 1);
return await Route.To(code).Call("ProcessRecipeDownload", new {
DownloadPath = P("DownloadPath"),
WorkOrderNumber = P("WorkOrderNumber"),
PartNumber = P("PartNumber"),
JobStepNumber = P("JobStepNumber"),
Username = P("Username"),
});
} catch (Exception ex) {
return new { Result = false, ResultText = "RecipeDownload failed: " + ex.Message };
}
""";
private const string DelmiaSiteScript = """
// Generic DELMIA recipe-download — performed DIRECTLY on the composed DelmiaReceiver child
var recv = Children["DelmiaRecv"];
System.Func