//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testUpdateEventTimer() public virtual void testUpdateEventTimer() { // given ClockTestUtil.setClockToDateWithoutMilliseconds(); BpmnModelInstance sourceProcess = modify(ProcessModels.ONE_TASK_PROCESS).activityBuilder(USER_TASK_ID).boundaryEvent(BOUNDARY_ID).timerWithDate(TIMER_DATE).userTask(AFTER_BOUNDARY_TASK).endEvent().done(); BpmnModelInstance targetProcess = modify(ProcessModels.ONE_TASK_PROCESS).activityBuilder(USER_TASK_ID).boundaryEvent(BOUNDARY_ID).timerWithDuration("PT50M").userTask(AFTER_BOUNDARY_TASK).endEvent().done(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities(USER_TASK_ID, USER_TASK_ID).mapActivities(BOUNDARY_ID, BOUNDARY_ID).updateEventTrigger().build(); // when testHelper.createProcessInstanceAndMigrate(migrationPlan); // then DateTime newDueDate = (new DateTime(ClockUtil.CurrentTime)).plusMinutes(50).toDate(); testHelper.assertJobMigrated(testHelper.snapshotBeforeMigration.Jobs[0], BOUNDARY_ID, newDueDate); // and it is possible to successfully complete the migrated instance Job jobAfterMigration = testHelper.snapshotAfterMigration.Jobs[0]; rule.ManagementService.executeJob(jobAfterMigration.Id); testHelper.completeTask(AFTER_BOUNDARY_TASK); testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.ProcessInstanceId); }
public virtual void TestAcquisitionByPriorityAndDueDate() { // job with priority 10 var instance1 = StartProcess("jobPrioProcess", "task1"); // job with priority 5 ClockTestUtil.IncrementClock(1); var instance2 = StartProcess("jobPrioProcess", "task2"); // job with priority 10 ClockTestUtil.IncrementClock(1); var instance3 = StartProcess("jobPrioProcess", "task1"); // job with priority 5 ClockTestUtil.IncrementClock(1); var instance4 = StartProcess("jobPrioProcess", "task2"); var acquirableJobs = FindAcquirableJobs(); Assert.AreEqual(4, acquirableJobs.Count); Assert.AreEqual(instance1, acquirableJobs[0].ProcessInstanceId); Assert.AreEqual(instance3, acquirableJobs[1].ProcessInstanceId); Assert.AreEqual(instance2, acquirableJobs[2].ProcessInstanceId); Assert.AreEqual(instance4, acquirableJobs[3].ProcessInstanceId); }
public virtual void TestJobPriorityIsNotConsidered() { // prio 5 var instance1 = StartProcess("jobPrioProcess", "task2"); // prio 10 ClockTestUtil.IncrementClock(1); var instance2 = StartProcess("jobPrioProcess", "task1"); // prio 5 ClockTestUtil.IncrementClock(1); var instance3 = StartProcess("jobPrioProcess", "task2"); // prio 10 ClockTestUtil.IncrementClock(1); var instance4 = StartProcess("jobPrioProcess", "task1"); var acquirableJobs = FindAcquirableJobs(); Assert.AreEqual(4, acquirableJobs.Count); Assert.AreEqual(5, (int)acquirableJobs[0].Priority); Assert.AreEqual(instance1, acquirableJobs[0].ProcessInstanceId); Assert.AreEqual(10, (int)acquirableJobs[1].Priority); Assert.AreEqual(instance2, acquirableJobs[1].ProcessInstanceId); Assert.AreEqual(5, (int)acquirableJobs[2].Priority); Assert.AreEqual(instance3, acquirableJobs[2].ProcessInstanceId); Assert.AreEqual(10, (int)acquirableJobs[3].Priority); Assert.AreEqual(instance4, acquirableJobs[3].ProcessInstanceId); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testUpdateEventTimer() public virtual void testUpdateEventTimer() { // given ClockTestUtil.setClockToDateWithoutMilliseconds(); BpmnModelInstance sourceProcess = EventSubProcessModels.TIMER_EVENT_SUBPROCESS_PROCESS; BpmnModelInstance targetProcess = modify(EventSubProcessModels.TIMER_EVENT_SUBPROCESS_PROCESS).removeChildren(EVENT_SUB_PROCESS_START_ID).startEventBuilder(EVENT_SUB_PROCESS_START_ID).timerWithDuration("PT50M").done(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities(USER_TASK_ID, USER_TASK_ID).mapActivities(EVENT_SUB_PROCESS_START_ID, EVENT_SUB_PROCESS_START_ID).updateEventTrigger().build(); // when testHelper.createProcessInstanceAndMigrate(migrationPlan); // then DateTime newDueDate = (new DateTime(ClockUtil.CurrentTime)).plusMinutes(50).toDate(); testHelper.assertJobMigrated(testHelper.snapshotBeforeMigration.Jobs[0], EVENT_SUB_PROCESS_START_ID, newDueDate); // and it is possible to successfully complete the migrated instance Job jobAfterMigration = testHelper.snapshotAfterMigration.Jobs[0]; rule.ManagementService.executeJob(jobAfterMigration.Id); testHelper.completeTask(EVENT_SUB_PROCESS_TASK_ID); testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.ProcessInstanceId); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMigrateJobUpdateTimerConfiguration() public virtual void testMigrateJobUpdateTimerConfiguration() { // given ClockTestUtil.setClockToDateWithoutMilliseconds(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(TimerCatchModels.ONE_TIMER_CATCH_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel().startEvent().intermediateCatchEvent("timerCatch").timerWithDuration("PT50M").userTask("userTask").endEvent().done()); MigrationPlan migrationPlan = rule.RuntimeService.createMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id).mapActivities("timerCatch", "timerCatch").updateEventTrigger().build(); // when ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan); // then DateTime newDueDate = (new DateTime(ClockUtil.CurrentTime)).plusMinutes(50).toDate(); testHelper.assertJobMigrated(testHelper.snapshotBeforeMigration.Jobs[0], "timerCatch", newDueDate); // and it is possible to trigger the event Job jobAfterMigration = testHelper.snapshotAfterMigration.Jobs[0]; rule.ManagementService.executeJob(jobAfterMigration.Id); testHelper.completeTask("userTask"); testHelper.assertProcessEnded(processInstance.Id); }
public virtual void testMonitorJobPollingForCompletion() { var processDefinition = testRule.DeployAndGetDefinition(instance); var batch = helper.StartAfterAsync("process1", 3, "user1", processDefinition.Id); // when the seed job creates the monitor job var createDate = ClockTestUtil.SetClockToDateWithoutMilliseconds(); helper.ExecuteSeedJob(batch); // then the monitor job has a no due date set var monitorJob = helper.GetMonitorJob(batch); Assert.NotNull(monitorJob); Assert.IsNull(monitorJob.Duedate); // when the monitor job is executed helper.ExecuteMonitorJob(batch); // then the monitor job has a due date of the default batch poll time monitorJob = helper.GetMonitorJob(batch); var dueDate = helper.AddSeconds(createDate, 30); Assert.AreEqual(dueDate, monitorJob.Duedate); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Parameterized.Parameters(name = "Job DueDate is set: {0}") public static java.util.Collection<Object[]> scenarios() throws java.text.ParseException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: public static ICollection <object[]> scenarios() { return(Arrays.asList(new object[][] { new object[] { false, null }, new object[] { true, ClockTestUtil.setClockToDateWithoutMilliseconds() } })); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testBatchQueryOrderByStartTimeDec() public virtual void testBatchQueryOrderByStartTimeDec() { // given ClockTestUtil.setClockToDateWithoutMilliseconds(); helper.migrateProcessInstancesAsync(1); ClockTestUtil.incrementClock(1000); helper.migrateProcessInstancesAsync(1); // when IList <HistoricBatch> orderedBatches = historyService.createHistoricBatchQuery().orderByStartTime().desc().list(); // then verifySorting(orderedBatches, inverted(historicBatchByStartTime())); }
public virtual void testUpdateEventTimer() { // given ClockTestUtil.SetClockToDateWithoutMilliseconds(); IBpmnModelInstance sourceProcess = ModifiableBpmnModelInstance.Modify(ProcessModels.OneTaskProcess) //.ActivityBuilder(USER_TASK_ID) //.BoundaryEvent(BOUNDARY_ID) //.TimerWithDate(TIMER_DATE) //.UserTask(AFTER_BOUNDARY_TASK) //.EndEvent() //.Done() ; IBpmnModelInstance targetProcess = ModifiableBpmnModelInstance.Modify(ProcessModels.OneTaskProcess) //.ActivityBuilder(USER_TASK_ID) //.BoundaryEvent(BOUNDARY_ID) //.TimerWithDuration("PT50M") //.UserTask(AFTER_BOUNDARY_TASK) //.EndEvent() //.Done() ; var sourceProcessDefinition = testHelper.DeployAndGetDefinition(sourceProcess); var targetProcessDefinition = testHelper.DeployAndGetDefinition(targetProcess); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities(USER_TASK_ID, USER_TASK_ID) .MapActivities(BOUNDARY_ID, BOUNDARY_ID) .UpdateEventTrigger() .Build(); // when testHelper.CreateProcessInstanceAndMigrate(migrationPlan); // then var newDueDate = new DateTime(ClockUtil.CurrentTime.Ticks).AddMinutes(50); testHelper.AssertJobMigrated(testHelper.SnapshotBeforeMigration.Jobs[0], BOUNDARY_ID, newDueDate); // and it is possible to successfully complete the migrated instance var jobAfterMigration = testHelper.SnapshotAfterMigration.Jobs[0]; rule.ManagementService.ExecuteJob(jobAfterMigration.Id); testHelper.CompleteTask(AFTER_BOUNDARY_TASK); testHelper.AssertProcessEnded(testHelper.SnapshotBeforeMigration.ProcessInstanceId); }
public virtual void testBatchQueryOrderByStartTimeDec() { // given ClockTestUtil.SetClockToDateWithoutMilliseconds(); helper.MigrateProcessInstancesAsync(1); ClockTestUtil.IncrementClock(1000); helper.MigrateProcessInstancesAsync(1); // when var orderedBatches = historyService.CreateHistoricBatchQuery() // .OrderByStartTime() /*.Desc()*/ .ToList(); // then //verifySorting(orderedBatches, inverted(historicBatchByStartTime())); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testBatchQueryOrderByEndTimeAsc() public virtual void testBatchQueryOrderByEndTimeAsc() { // given ClockTestUtil.setClockToDateWithoutMilliseconds(); Batch batch1 = helper.migrateProcessInstancesAsync(1); helper.completeBatch(batch1); ClockTestUtil.incrementClock(1000); Batch batch2 = helper.migrateProcessInstancesAsync(1); helper.completeBatch(batch2); // when IList <HistoricBatch> orderedBatches = historyService.createHistoricBatchQuery().orderByEndTime().asc().list(); // then verifySorting(orderedBatches, historicBatchByEndTime()); }
public virtual void TestAcquisitionByPriority() { // jobs with priority 10 StartProcess("jobPrioProcess", "task1", 5); // jobs with priority 5 StartProcess("jobPrioProcess", "task2", 5); // jobs with priority 8 StartProcess("timerJobPrioProcess", "timer1", 5); // jobs with priority 4 StartProcess("timerJobPrioProcess", "timer2", 5); // make timers due ClockTestUtil.IncrementClock(61); var acquirableJobs = FindAcquirableJobs(); Assert.AreEqual(20, acquirableJobs.Count); for (var i = 0; i < 5; i++) { Assert.AreEqual(10, acquirableJobs[i].Priority); } for (var i = 5; i < 10; i++) { Assert.AreEqual(8, acquirableJobs[i].Priority); } for (var i = 10; i < 15; i++) { Assert.AreEqual(5, acquirableJobs[i].Priority); } for (var i = 15; i < 20; i++) { Assert.AreEqual(4, acquirableJobs[i].Priority); } }
public virtual void TestTimerJobsArePreferred() { // first start process with timer job RuntimeService.StartProcessInstanceByKey("testProcess"); // then start process with async task RuntimeService.StartProcessInstanceByKey("simpleAsyncProcess"); // then start process with timer job RuntimeService.StartProcessInstanceByKey("testProcess"); // and another process with async task RuntimeService.StartProcessInstanceByKey("simpleAsyncProcess"); // increment clock so that timer events are acquirable ClockTestUtil.IncrementClock(70); var acquirableJobs = FindAcquirableJobs(); Assert.AreEqual(4, acquirableJobs.Count); Assert.True(acquirableJobs[0] is TimerEntity); Assert.True(acquirableJobs[1] is TimerEntity); Assert.True(acquirableJobs[2] is MessageEntity); Assert.True(acquirableJobs[3] is MessageEntity); }
public virtual void testUpdateEventTimer() { // given ClockTestUtil.SetClockToDateWithoutMilliseconds(); var sourceProcess = EventSubProcessModels.TIMER_EVENT_SUBPROCESS_PROCESS; var targetProcess = ModifiableBpmnModelInstance.Modify(EventSubProcessModels.TIMER_EVENT_SUBPROCESS_PROCESS) .RemoveChildren(EVENT_SUB_PROCESS_START_ID) .StartEventBuilder(EVENT_SUB_PROCESS_START_ID) .TimerWithDuration("PT50M") .Done(); var sourceProcessDefinition = testHelper.DeployAndGetDefinition(sourceProcess); var targetProcessDefinition = testHelper.DeployAndGetDefinition(targetProcess); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities(USER_TASK_ID, USER_TASK_ID) .MapActivities(EVENT_SUB_PROCESS_START_ID, EVENT_SUB_PROCESS_START_ID) .UpdateEventTrigger() .Build(); // when testHelper.CreateProcessInstanceAndMigrate(migrationPlan); // then var newDueDate = new DateTime(ClockUtil.CurrentTime.Ticks).AddMinutes(50); testHelper.AssertJobMigrated(testHelper.SnapshotBeforeMigration.Jobs[0], EVENT_SUB_PROCESS_START_ID, newDueDate); // and it is possible to successfully complete the migrated instance var jobAfterMigration = testHelper.SnapshotAfterMigration.Jobs[0]; rule.ManagementService.ExecuteJob(jobAfterMigration.Id); testHelper.CompleteTask(EVENT_SUB_PROCESS_TASK_ID); testHelper.AssertProcessEnded(testHelper.SnapshotBeforeMigration.ProcessInstanceId); }
public virtual void TestTimerAndOldJobsArePreferred() { // first start process with timer job var timerProcess1 = RuntimeService.StartProcessInstanceByKey("testProcess"); // then start process with async task ClockTestUtil.IncrementClock(1); var asyncProcess1 = RuntimeService.StartProcessInstanceByKey("simpleAsyncProcess"); // then start process with timer job ClockTestUtil.IncrementClock(1); var timerProcess2 = RuntimeService.StartProcessInstanceByKey("testProcess"); // and another process with async task after the timers are acquirable ClockTestUtil.IncrementClock(61); var asyncProcess2 = RuntimeService.StartProcessInstanceByKey("simpleAsyncProcess"); var timerJob1 = ManagementService.CreateJobQuery(c => c.ProcessInstanceId == timerProcess1.Id).First(); var timerJob2 = ManagementService.CreateJobQuery(c => c.ProcessInstanceId == timerProcess2.Id).First(); var messageJob1 = ManagementService.CreateJobQuery(c => c.ProcessInstanceId == asyncProcess1.Id).First(); var messageJob2 = ManagementService.CreateJobQuery(c => c.ProcessInstanceId == asyncProcess2.Id).First(); Assert.NotNull(timerJob1.Duedate); Assert.NotNull(timerJob2.Duedate); Assert.NotNull(messageJob1.Duedate); Assert.NotNull(messageJob2.Duedate); Assert.True(messageJob1.Duedate < timerJob1.Duedate); Assert.True(timerJob1.Duedate < timerJob2.Duedate); Assert.True(timerJob2.Duedate < messageJob2.Duedate); var acquirableJobs = FindAcquirableJobs(); Assert.AreEqual(4, acquirableJobs.Count); Assert.AreEqual(timerJob1.Id, acquirableJobs[0].Id); Assert.AreEqual(timerJob2.Id, acquirableJobs[1].Id); Assert.AreEqual(messageJob1.Id, acquirableJobs[2].Id); Assert.AreEqual(messageJob2.Id, acquirableJobs[3].Id); }
public virtual void testBatchQueryOrderByEndTimeAsc() { // given ClockTestUtil.SetClockToDateWithoutMilliseconds(); var batch1 = helper.MigrateProcessInstancesAsync(1); helper.CompleteBatch(batch1); ClockTestUtil.IncrementClock(1000); var batch2 = helper.MigrateProcessInstancesAsync(1); helper.CompleteBatch(batch2); // when var orderedBatches = historyService.CreateHistoricBatchQuery() //.OrderByEndTime() /*.Asc()*/ .ToList(); // then //verifySorting(orderedBatches, historicBatchByEndTime()); }
public virtual void testMonitorJobPollingForCompletion() { var batch = helper.MigrateProcessInstancesAsync(10); // when the seed job creates the monitor job var createDate = ClockTestUtil.SetClockToDateWithoutMilliseconds(); helper.ExecuteSeedJob(batch); // then the monitor job has a no due date set var monitorJob = helper.GetMonitorJob(batch); Assert.NotNull(monitorJob); Assert.IsNull(monitorJob.Duedate); // when the monitor job is executed helper.ExecuteMonitorJob(batch); // then the monitor job has a due date of the default batch poll time monitorJob = helper.GetMonitorJob(batch); var dueDate = helper.AddSeconds(createDate, 30); Assert.AreEqual(dueDate, monitorJob.Duedate); }
public virtual void testMigrateJobUpdateTimerConfiguration() { // given ClockTestUtil.SetClockToDateWithoutMilliseconds(); var sourceProcessDefinition = testHelper.DeployAndGetDefinition(TimerCatchModels.ONE_TIMER_CATCH_PROCESS); var targetProcessDefinition = testHelper.DeployAndGetDefinition(ProcessModels.NewModel() .StartEvent() .IntermediateCatchEvent("timerCatch") .TimerWithDuration("PT50M") .UserTask("userTask") .EndEvent() .Done()); var migrationPlan = rule.RuntimeService.CreateMigrationPlan(sourceProcessDefinition.Id, targetProcessDefinition.Id) .MapActivities("timerCatch", "timerCatch") .UpdateEventTrigger() .Build(); // when var processInstance = testHelper.CreateProcessInstanceAndMigrate(migrationPlan); // then var newDueDate = new DateTime(ClockUtil.CurrentTime.Ticks).AddMinutes(50); testHelper.AssertJobMigrated(testHelper.SnapshotBeforeMigration.Jobs[0], "timerCatch", newDueDate); // and it is possible to trigger the event var jobAfterMigration = testHelper.SnapshotAfterMigration.Jobs[0]; rule.ManagementService.ExecuteJob(jobAfterMigration.Id); testHelper.CompleteTask("userTask"); testHelper.AssertProcessEnded(processInstance.Id); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Before public void setClock() public virtual void setClock() { ClockTestUtil.setClockToDateWithoutMilliseconds(); }