public async Task BPMN_GetProcessResultForCorrelation_ShouldGetResultOfStaticProcess() { var processModelId = "test_consumer_api_correlation_result"; var endEventId = "EndEvent_Success"; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnEndEventReached; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType, endEventId); var correlationResults = await this .fixture .ConsumerAPIClient .GetProcessResultForCorrelation <TestResult>(this.fixture.DefaultIdentity, processInstance.CorrelationId, processModelId); var expectedCorrelationResult = new CorrelationResult <TestResult> { TokenPayload = new TestResult() { scriptOutput = "hello world" }, CorrelationId = processInstance.CorrelationId, EndEventId = endEventId }; var actualCorrelationResult = new List <CorrelationResult <TestResult> >(correlationResults.CorrelationResults).FirstOrDefault(); Assert.NotNull(actualCorrelationResult); Assert.Equal(expectedCorrelationResult.CorrelationId, actualCorrelationResult.CorrelationId); Assert.Equal(expectedCorrelationResult.EndEventId, actualCorrelationResult.EndEventId); Assert.Equal(expectedCorrelationResult.TokenPayload.scriptOutput, actualCorrelationResult.TokenPayload.scriptOutput); }
public async Task BPMN_FinishManualTask_ShouldFinishManualTask() { var processModelId = "test_consumer_api_manualtask"; var identity = this.fixture.DefaultIdentity; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnProcessInstanceCreated; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(identity, processModelId, "StartEvent_1", payload, callbackType); // Give the ProcessEngine time to reach the ManualTask await Task.Delay(1000); ManualTaskList manualTasks = await this .fixture .ConsumerAPIClient .GetManualTasksForCorrelation(identity, processInstance.CorrelationId); Assert.NotEmpty(manualTasks.ManualTasks); var manualTaskToBeFinished = manualTasks.ManualTasks.ElementAt(0); await this .fixture .ConsumerAPIClient .FinishManualTask( identity, processInstance.ProcessInstanceId, processInstance.CorrelationId, manualTaskToBeFinished.FlowNodeInstanceId ); }
public async Task BPMN_TriggerSignalEvent_ShouldContinueProcessWithSignalIntermediateCatchEvent() { string processModelId = "test_consumer_api_signal_event"; string signalName = "test_signal_event"; var requestPayload = new ProcessStartRequestPayload <object>(); ProcessStartResponsePayload processStartResponsePayload = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", requestPayload); await Task.Delay(5000); await this.fixture.ConsumerAPIClient.TriggerSignalEvent(this.fixture.DefaultIdentity, signalName); await Task.Delay(5000); var processResult = await this .fixture .ConsumerAPIClient .GetProcessResultForCorrelation <object>(this.fixture.DefaultIdentity, processStartResponsePayload.CorrelationId, processModelId); Assert.NotEmpty(processResult.CorrelationResults); }
public async Task BPMN_GetEventsForCorrelationTests_ShouldFetchEventsOfRunningProcess() { var processModelId = "test_consumer_api_message_event"; var messageName = "test_message_event"; var requestPayload = new ProcessStartRequestPayload <object>(); ProcessStartResponsePayload processStartResponsePayload = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", requestPayload); await Task.Delay(1000); var events = await this .fixture .ConsumerAPIClient .GetEventsForCorrelation(this.fixture.DefaultIdentity, processStartResponsePayload.CorrelationId); Assert.NotEmpty(events.Events); var fetchedEvent = events.Events.ElementAt(0); Assert.Equal(fetchedEvent.EventName, messageName); }
public async Task BPMN_StartProcessInstance_ShouldCreateAndFinishProcess() { var processModelId = "test_start_process"; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnEndEventReached; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType, "EndEvent_1"); }
public async Task BPMN_StartProcessInstance_ShouldCreateCorrelationIdIfNoneProvided() { var processModelId = "test_start_process"; var payload = new ProcessStartRequestPayload <object>(); ProcessStartResponsePayload processStartResponsePayload = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload); Assert.NotEmpty(processStartResponsePayload.CorrelationId); }
public async Task BPMN_StartProcessInstance_ShouldCreateProcessWithDistinctCorrelationId() { var processModelId = "test_start_process"; var correlationId = "CorrelationId_1"; var payload = new ProcessStartRequestPayload <object> { CorrelationId = correlationId }; ProcessStartResponsePayload processStartResponsePayload = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload); Assert.Equal(processStartResponsePayload.CorrelationId, correlationId); }
public async Task BPMN_GetWaitingManualTasksByIdentity_ShouldFetchManualTaskList() { var processModelId = "test_consumer_api_manualtask"; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnProcessInstanceCreated; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType); // Give the ProcessEngine time to reach the ManualTask await Task.Delay(2000); ManualTaskList manualTasks = await this.fixture.ConsumerAPIClient.GetWaitingManualTasksByIdentity(this.fixture.DefaultIdentity); Assert.NotEmpty(manualTasks.ManualTasks); }
public async Task BPMN_GetUserTasksForCorrelation_ShouldFetchUserTaskList() { var processModelId = "test_consumer_api_usertask"; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnProcessInstanceCreated; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType); // Give the ProcessEngine time to reach the UserTask await Task.Delay(1000); UserTaskList userTasks = await this .fixture .ConsumerAPIClient .GetUserTasksForCorrelation(this.fixture.DefaultIdentity, processInstance.CorrelationId); Assert.NotEmpty(userTasks.UserTasks); }
public async Task BPMN_FinishUserTask_ShouldFinishUserTask() { var processModelId = "test_consumer_api_usertask"; var payload = new ProcessStartRequestPayload <object>(); var callbackType = StartCallbackType.CallbackOnProcessInstanceCreated; ProcessStartResponsePayload processInstance = await this .fixture .ConsumerAPIClient .StartProcessInstance(this.fixture.DefaultIdentity, processModelId, "StartEvent_1", payload, callbackType); // Give the ProcessEngine time to reach the UserTask await Task.Delay(5000); UserTaskList userTasks = await this .fixture .ConsumerAPIClient .GetUserTasksForCorrelation(this.fixture.DefaultIdentity, processInstance.CorrelationId); Assert.NotEmpty(userTasks.UserTasks); var userTaskToBeFinished = userTasks.UserTasks.ElementAt(0); var userTaskResult = new UserTaskResult() { FormFields = new Dictionary <string, object>() }; userTaskResult.FormFields.Add("my_test_key", "my_test_value"); await this .fixture .ConsumerAPIClient .FinishUserTask( this.fixture.DefaultIdentity, processInstance.ProcessInstanceId, processInstance.CorrelationId, userTaskToBeFinished.FlowNodeInstanceId, userTaskResult ); }
static async Task StartProcess() { ConsumerApiClientService client = Program.CreateConsumerClient("http://localhost:8000"); ProcessStartRequestPayload <StartPayload> payload = Program.CreatePayload("Dies ist die Eingabe für den Prozess aus DotNet."); IIdentity identity = CreateIdentity(); Console.WriteLine($"Prozess gestartet '{PROCESS_MODEL_ID}' mit Start-Event '{START_EVENT_ID}'."); ProcessStartResponsePayload result = await client.StartProcessInstance <StartPayload>( identity, PROCESS_MODEL_ID, START_EVENT_ID, payload, StartCallbackType.CallbackOnEndEventReached, END_EVENT_ID); Console.WriteLine($"Prozess beendet (CorrelationId: '{result.CorrelationId}')."); Console.Write("Daten: "); Console.WriteLine(result.TokenPayload); }