Add project files.

This commit is contained in:
2025-08-18 17:11:43 +03:30
parent 807dc263be
commit e5eb10d604
3943 changed files with 223719 additions and 0 deletions
@@ -0,0 +1,42 @@
using Elsa.Testing.Shared;
using Xunit.Abstractions;
namespace Elsa.Workflows.IntegrationTests.Scenarios.ExplicitJoins;
public class ExplicitJoinWaitAnyTests
{
private readonly CapturingTextWriter _capturingTextWriter = new();
private readonly IServiceProvider _services;
public ExplicitJoinWaitAnyTests(ITestOutputHelper testOutputHelper)
{
_services = new TestApplicationBuilder(testOutputHelper)
.WithCapturingTextWriter(_capturingTextWriter)
.Build();
}
[Theory(DisplayName = "Workflows with explicit joins complete the workflow.")]
[InlineData("join-any-1.json", "Start; End")]
[InlineData("join-all-1.json", "Start; Line 1; Line 2; End")]
[InlineData("join-all-2.json", "Start; Line 1; Line 2; End")]
public async Task Test1(string filename, string expectedLines)
{
// Populate registries.
await _services.PopulateRegistriesAsync();
// Import workflow.
var fileName = $"Scenarios/ExplicitJoins/Workflows/{filename}";
var workflowDefinition = await _services.ImportWorkflowDefinitionAsync(fileName);
// Execute.
var workflowState = await _services.RunWorkflowUntilEndAsync(workflowDefinition.DefinitionId);
// Assert expected output.
var lines = _capturingTextWriter.Lines.ToList();
var expectedLinesArray = expectedLines.Split(";", StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries).ToList();
Assert.Equal(expectedLinesArray, lines);
// Assert expected workflow status.
Assert.Equal(WorkflowStatus.Finished, workflowState.Status);
}
}
@@ -0,0 +1,248 @@
{
"id": "9948e541b0e540c384c6eb9fdcf1d544",
"definitionId": "296428cc22bd4f309e858f4b461dbb3d",
"name": "Join 1",
"createdAt": "2023-09-12T18:12:54.370149+00:00",
"version": 2,
"toolVersion": "3.0.0.0",
"variables": [],
"inputs": [],
"outputs": [],
"outcomes": [],
"customProperties": {},
"isReadonly": false,
"isLatest": true,
"isPublished": true,
"options": {
"autoUpdateConsumingWorkflows": false
},
"root": {
"type": "Elsa.Flowchart",
"version": 1,
"id": "sL581qWiIEOpRncv5Ez33A",
"metadata": {},
"customProperties": {
"source": "FlowchartJsonConverter.cs:46",
"notFoundConnections": [],
"canStartWorkflow": false,
"runAsynchronously": false
},
"activities": [
{
"mode": {
"typeName": "Elsa.Workflows.Core.Activities.Flowchart.Models.FlowJoinMode, Elsa.Workflows.Core",
"expression": {
"type": "Literal",
"value": "WaitAll"
},
"memoryReference": {
"id": "aA4pfJOzyEqmLOY3U3vCoQ:input-0"
}
},
"id": "aA4pfJOzyEqmLOY3U3vCoQ",
"name": "FlowJoin1",
"type": "Elsa.FlowJoin",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": 198,
"y": -266
},
"size": {
"width": 136.859375,
"height": 50
}
}
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Start"
},
"memoryReference": {
"id": "FRXh0PlHekejZiWANAplUg:input-0"
}
},
"id": "FRXh0PlHekejZiWANAplUg",
"name": "WriteLine1",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -287,
"y": -266
},
"size": {
"width": 102.21875,
"height": 50
}
},
"displayText": "Start"
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Line 1"
},
"memoryReference": {
"id": "GaVrCWqBDkS6YrvydxKvFA:input-0"
}
},
"id": "GaVrCWqBDkS6YrvydxKvFA",
"name": "WriteLine2",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -40,
"y": -316
},
"size": {
"width": 110.65625,
"height": 50
}
},
"displayText": "Line 1"
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Line 2"
},
"memoryReference": {
"id": "9Z7bt98j00uRMt9TS2FD0g:input-0"
}
},
"id": "9Z7bt98j00uRMt9TS2FD0g",
"name": "WriteLine3",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -40,
"y": -207
},
"size": {
"width": 110.65625,
"height": 50
}
},
"displayText": "Line 2"
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "End"
},
"memoryReference": {
"id": "MplDrS_bUE-8td-XBUvWmA:input-0"
}
},
"id": "MplDrS_bUE-8td-XBUvWmA",
"name": "WriteLine4",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": 430,
"y": -266
},
"size": {
"width": 139.296875,
"height": 50
}
}
}
}
],
"connections": [
{
"source": {
"activity": "FRXh0PlHekejZiWANAplUg",
"port": "Done"
},
"target": {
"activity": "GaVrCWqBDkS6YrvydxKvFA",
"port": "In"
}
},
{
"source": {
"activity": "FRXh0PlHekejZiWANAplUg",
"port": "Done"
},
"target": {
"activity": "9Z7bt98j00uRMt9TS2FD0g",
"port": "In"
}
},
{
"source": {
"activity": "9Z7bt98j00uRMt9TS2FD0g",
"port": "Done"
},
"target": {
"activity": "aA4pfJOzyEqmLOY3U3vCoQ",
"port": "In"
}
},
{
"source": {
"activity": "GaVrCWqBDkS6YrvydxKvFA",
"port": "Done"
},
"target": {
"activity": "aA4pfJOzyEqmLOY3U3vCoQ",
"port": "In"
}
},
{
"source": {
"activity": "aA4pfJOzyEqmLOY3U3vCoQ",
"port": "Done"
},
"target": {
"activity": "MplDrS_bUE-8td-XBUvWmA",
"port": "In"
}
}
]
}
}
@@ -0,0 +1,287 @@
{
"id": "14984c048db34cceaf5e15ece80f9703",
"definitionId": "64f8f2c852f04dc28f60707034d7a906",
"name": "Join 2",
"createdAt": "2023-09-12T18:12:43.392272+00:00",
"version": 1,
"toolVersion": "3.0.0.0",
"variables": [],
"inputs": [],
"outputs": [],
"outcomes": [],
"customProperties": {},
"isReadonly": false,
"isLatest": true,
"isPublished": true,
"options": {
"autoUpdateConsumingWorkflows": false
},
"root": {
"type": "Elsa.Flowchart",
"version": 1,
"id": "B2jpPDriPEe-zSOhVuAGeQ",
"metadata": {},
"customProperties": {
"source": "FlowchartJsonConverter.cs:46",
"notFoundConnections": [],
"canStartWorkflow": false,
"runAsynchronously": false
},
"activities": [
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Start"
},
"memoryReference": {
"id": "2yPLgUudQEGPaschdLdkGg:input-0"
}
},
"id": "2yPLgUudQEGPaschdLdkGg",
"name": "WriteLine1",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -358.5,
"y": -229
},
"size": {
"width": 139.296875,
"height": 50
}
},
"displayText": "Start"
}
},
{
"body": {
"type": "Elsa.Flowchart",
"version": 1,
"id": "zaAIlUtQDEaPqeITeRJ4_w",
"metadata": {},
"customProperties": {
"source": "FlowchartJsonConverter.cs:46",
"notFoundConnections": [],
"canStartWorkflow": false,
"runAsynchronously": false
},
"activities": [
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Line 2"
},
"memoryReference": {
"id": "g3jVTdvU3EK7V5JqRqfqjQ:input-0"
}
},
"id": "g3jVTdvU3EK7V5JqRqfqjQ",
"name": "WriteLine1",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -279.5,
"y": -294
},
"size": {
"width": 139.296875,
"height": 50
}
},
"displayText": "Line 2"
}
}
],
"connections": []
},
"id": "eHAEEQ-Iu0GwM3mRxZin0Q",
"name": "FlowNode1",
"type": "Elsa.FlowNode",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -120,
"y": -179
},
"size": {
"width": 211.15625,
"height": 120
}
},
"displayText": "Line 2"
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Line 1"
},
"memoryReference": {
"id": "7RQ2sbVHo0SxsyK0dvTKEA:input-0"
}
},
"id": "7RQ2sbVHo0SxsyK0dvTKEA",
"name": "WriteLine2",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -120,
"y": -279
},
"size": {
"width": 139.296875,
"height": 50
}
},
"displayText": "Line 1"
}
},
{
"mode": {
"typeName": "Elsa.Workflows.Core.Activities.Flowchart.Models.FlowJoinMode, Elsa.Workflows.Core",
"expression": {
"type": "Literal",
"value": "WaitAll"
},
"memoryReference": {
"id": "dVUuwMm5XUiYpiYoGo5JKA:input-0"
}
},
"id": "dVUuwMm5XUiYpiYoGo5JKA",
"name": "FlowJoin1",
"type": "Elsa.FlowJoin",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": 180.5,
"y": -229
},
"size": {
"width": 136.859375,
"height": 50
}
}
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "End"
},
"memoryReference": {
"id": "NpZ_yT_irUuE9ASEfYLxbw:input-0"
}
},
"id": "NpZ_yT_irUuE9ASEfYLxbw",
"name": "WriteLine3",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": 400,
"y": -229
},
"size": {
"width": 139.296875,
"height": 50
}
},
"displayText": "End"
}
}
],
"connections": [
{
"source": {
"activity": "2yPLgUudQEGPaschdLdkGg",
"port": "Done"
},
"target": {
"activity": "7RQ2sbVHo0SxsyK0dvTKEA",
"port": "In"
}
},
{
"source": {
"activity": "2yPLgUudQEGPaschdLdkGg",
"port": "Done"
},
"target": {
"activity": "eHAEEQ-Iu0GwM3mRxZin0Q",
"port": "In"
}
},
{
"source": {
"activity": "7RQ2sbVHo0SxsyK0dvTKEA",
"port": "Done"
},
"target": {
"activity": "dVUuwMm5XUiYpiYoGo5JKA",
"port": "In"
}
},
{
"source": {
"activity": "eHAEEQ-Iu0GwM3mRxZin0Q",
"port": "Done"
},
"target": {
"activity": "dVUuwMm5XUiYpiYoGo5JKA",
"port": "In"
}
},
{
"source": {
"activity": "dVUuwMm5XUiYpiYoGo5JKA",
"port": "Done"
},
"target": {
"activity": "NpZ_yT_irUuE9ASEfYLxbw",
"port": "In"
}
}
]
}
}
@@ -0,0 +1,245 @@
{
"id": "2484d1b14e2348f7a916ecef042536e6",
"definitionId": "7204b870946b4968aa786a2c91431242",
"name": "Flow Join Any",
"createdAt": "2023-09-08T19:07:08.435872+00:00",
"version": 1,
"toolVersion": "3.0.0.0",
"variables": [],
"inputs": [],
"outputs": [],
"outcomes": [],
"customProperties": {},
"isReadonly": false,
"isLatest": true,
"isPublished": false,
"options": {
"autoUpdateConsumingWorkflows": false
},
"root": {
"type": "Elsa.Flowchart",
"version": 1,
"id": "F44h770hvkSaOWI_jjbM_A",
"metadata": {},
"customProperties": {
"source": "FlowchartJsonConverter.cs:45",
"NotFoundConnectionsKey": [],
"canStartWorkflow": false,
"runAsynchronously": false
},
"activities": [
{
"mode": {
"typeName": "Elsa.Workflows.Core.Activities.Flowchart.Models.FlowJoinMode, Elsa.Workflows.Core",
"expression": {
"type": "Literal",
"value": "WaitAny"
},
"memoryReference": {
"id": "ImdIbHXtHkiLlrExFlW51A:input-0"
}
},
"id": "ImdIbHXtHkiLlrExFlW51A",
"name": "FlowJoin1",
"type": "Elsa.FlowJoin",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -180,
"y": -320
},
"size": {
"width": 136.859375,
"height": 50
}
}
}
},
{
"mode": {
"typeName": "Elsa.Workflows.Core.Activities.Flowchart.Models.FlowJoinMode, Elsa.Workflows.Core",
"expression": {
"type": "Literal",
"value": "WaitAny"
},
"memoryReference": {
"id": "cxnS1whoCESvwwPyBnno_Q:input-0"
}
},
"id": "cxnS1whoCESvwwPyBnno_Q",
"name": "FlowJoin2",
"type": "Elsa.FlowJoin",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -180,
"y": -80
},
"size": {
"width": 136.859375,
"height": 50
}
}
}
},
{
"mode": {
"typeName": "Elsa.Workflows.Core.Activities.Flowchart.Models.FlowJoinMode, Elsa.Workflows.Core",
"expression": {
"type": "Literal",
"value": "WaitAny"
},
"memoryReference": {
"id": "H0apwXYdoESn2TJ5T_3xAg:input-0"
}
},
"id": "H0apwXYdoESn2TJ5T_3xAg",
"name": "FlowJoin3",
"type": "Elsa.FlowJoin",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": 40,
"y": -194
},
"size": {
"width": 136.859375,
"height": 50
}
}
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "Start"
},
"memoryReference": {
"id": "Kn9d-EVn2EiaYJqHd8VcmQ:input-0"
}
},
"id": "Kn9d-EVn2EiaYJqHd8VcmQ",
"name": "WriteLine1",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": -393.5,
"y": -194
},
"size": {
"width": 139.296875,
"height": 50
}
}
}
},
{
"text": {
"typeName": "String",
"expression": {
"type": "Literal",
"value": "End"
},
"memoryReference": {
"id": "haHoM3A5EU6aYu_8dCYaYg:input-0"
}
},
"id": "haHoM3A5EU6aYu_8dCYaYg",
"name": "WriteLine2",
"type": "Elsa.WriteLine",
"version": 1,
"customProperties": {
"canStartWorkflow": false,
"runAsynchronously": false
},
"metadata": {
"designer": {
"position": {
"x": 310.5,
"y": -194
},
"size": {
"width": 139.296875,
"height": 50
}
}
}
}
],
"connections": [
{
"source": {
"activity": "Kn9d-EVn2EiaYJqHd8VcmQ",
"port": "Done"
},
"target": {
"activity": "ImdIbHXtHkiLlrExFlW51A",
"port": "In"
}
},
{
"source": {
"activity": "Kn9d-EVn2EiaYJqHd8VcmQ",
"port": "Done"
},
"target": {
"activity": "cxnS1whoCESvwwPyBnno_Q",
"port": "In"
}
},
{
"source": {
"activity": "ImdIbHXtHkiLlrExFlW51A",
"port": "Done"
},
"target": {
"activity": "H0apwXYdoESn2TJ5T_3xAg",
"port": "In"
}
},
{
"source": {
"activity": "cxnS1whoCESvwwPyBnno_Q",
"port": "Done"
},
"target": {
"activity": "H0apwXYdoESn2TJ5T_3xAg",
"port": "In"
}
},
{
"source": {
"activity": "H0apwXYdoESn2TJ5T_3xAg",
"port": "Done"
},
"target": {
"activity": "haHoM3A5EU6aYu_8dCYaYg",
"port": "In"
}
}
]
}
}