BpmnTestProcesses had grown to 905 lines as one flat static class holding the fixtures for every BPMN construct family the runtime slice covers, and two standards reviews flagged it as Divergent Change while judging the split out of scope for the issue in hand. It becomes a partial class across six sibling files, one per family -- boundary events, compensation and transactions, event subprocesses, flow and gateways, multi-instance -- with the shared element factories (Timer, Cancel, Compensation, CompensationBoundary, Escalation, Error, Message, EventSubprocess, EventSubprocessStart) and the Scope/Immediate/Blocking/Faulting builders left in one place, so no new file duplicates them. Partial rather than separate types because every call site says BpmnTestProcesses.X and none of them change. Pure move: all 47 members were carved out programmatically and diffed back against HEAD, each present exactly once and byte-identical. In particular EscalationOutOfSubprocess keeps its leading subFirst work item and the comment explaining why the nested scope's handle counter must run ahead of its parent's. The identical Compensation/CompensationBoundary helpers in Elsa.Bpmn.Interchange.IntegrationTests are deliberately left duplicated: the only assembly both test projects can see is Elsa.Testing.Shared.Integration, which ships as a NuGet package, so sharing ten lines of test helper would mean adding an Elsa.Bpmn reference to a published package's dependency graph. Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Scenarios | ||
| BpmnFeatureTests.cs | ||
| Elsa.Bpmn.IntegrationTests.csproj | ||