Exemple #1
0
        protected override BaseCaseEltInstance InternalBuild()
        {
            var result = new EmptyTaskElementInstance
            {
                ManualActivationRule = ManualActivationRule,
                RepetitionRule       = RepetitionRule
            };

            SeedCasePlanItem(result);
            return(result);
        }
Exemple #2
0
        public async Task When_Execute_Task_With_ManualActivationRule()
        {
            var instance = CasePlanInstanceBuilder.New("1", "firstCase")
                           .AddEmptyTask("2", "firstTask", (_) =>
            {
                _.SetManualActivationRule("name", new CMMNExpression("csharp", "true"));
            })
                           .AddEmptyTask("3", "secondTask", (_) =>
            {
            })
                           .AddEmptyTask("4", "thirdTask", (_) =>
            {
                _.AddEntryCriteria("entry", (__) =>
                {
                    __.AddPlanItemOnPart("2", CMMNTransitions.Complete);
                    __.AddPlanItemOnPart("3", CMMNTransitions.Complete);
                });
            })
                           .Build();
            var jobServer = FakeCaseJobServer.New();

            try
            {
                await jobServer.RegisterCasePlanInstance(instance, CancellationToken.None);

                jobServer.Start();
                await jobServer.EnqueueCasePlanInstance("1", CancellationToken.None);

                await jobServer.PublishExternalEvt("manualstart", "1", EmptyTaskElementInstance.BuildId("1", "2", 0), new Dictionary <string, string>(), CancellationToken.None);

                var casePlanInstance = await jobServer.MonitorCasePlanInstance("1", (c) =>
                {
                    if (c == null)
                    {
                        return(false);
                    }

                    return(c.State == CaseStates.Completed);
                }, CancellationToken.None);

                var firstEmptyTask  = casePlanInstance.StageContent.Children.ElementAt(0) as EmptyTaskElementInstance;
                var secondEmptyTask = casePlanInstance.StageContent.Children.ElementAt(0) as EmptyTaskElementInstance;
                var thirdEmptyTask  = casePlanInstance.StageContent.Children.ElementAt(0) as EmptyTaskElementInstance;
                Assert.Equal(CaseStates.Completed, casePlanInstance.State);
                Assert.Equal(TaskStageStates.Completed, firstEmptyTask.State);
                Assert.Equal(TaskStageStates.Completed, secondEmptyTask.State);
                Assert.Equal(TaskStageStates.Completed, thirdEmptyTask.State);
            }
            finally
            {
                jobServer.Stop();
            }
        }
Exemple #3
0
 protected override string BuildId()
 {
     return(EmptyTaskElementInstance.BuildId(CasePlanInstanceId, EltId, 0));
 }