Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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
                );
        }
Esempio n. 11
0
        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);
        }