@Test public void testSuspendJobDefinitionByProcessDefinitionKeyAndTenantId() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", true); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); params.put("processDefinitionTenantId", MockProvider.EXAMPLE_TENANT_ID); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).processDefinitionTenantId(MockProvider.EXAMPLE_TENANT_ID); verify(mockSuspensionStateBuilder).suspend(); }
@Test public void testSuspendJobDefinitionByProcessDefinitionKeyWithoutTenantId() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", true); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); params.put("processDefinitionWithoutTenantId", true); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).processDefinitionWithoutTenantId(); verify(mockSuspensionStateBuilder).suspend(); }
@Test public void testDelayedActivateJobDefinitionByProcessDefinitionKeyIncludingInstaces() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", false); params.put("includeJobs", true); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); params.put("executionDate", MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); Date executionDate = DateTimeUtil.parseDate(MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).executionDate(executionDate); verify(mockSuspensionStateBuilder).includeJobs(true); verify(mockSuspensionStateBuilder).activate(); }
protected UpdateJobDefinitionSuspensionStateBuilder createUpdateSuspensionStateBuilder(ProcessEngine engine) { UpdateJobDefinitionSuspensionStateSelectBuilder selectBuilder = engine.getManagementService().updateJobDefinitionSuspensionState(); if (jobDefinitionId != null) { return selectBuilder.byJobDefinitionId(jobDefinitionId); } else if (processDefinitionId != null) { return selectBuilder.byProcessDefinitionId(processDefinitionId); } else { UpdateJobDefinitionSuspensionStateTenantBuilder tenantBuilder = selectBuilder.byProcessDefinitionKey(processDefinitionKey); if (processDefinitionTenantId != null) { tenantBuilder.processDefinitionTenantId(processDefinitionTenantId); } else if (processDefinitionWithoutTenantId) { tenantBuilder.processDefinitionWithoutTenantId(); } return tenantBuilder; } }
@Test public void testDelayedSuspendJobDefinitionByProcessDefinitionIdIncludingInstaces() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", true); params.put("includeJobs", true); params.put("processDefinitionId", MockProvider.EXAMPLE_PROCESS_DEFINITION_ID); params.put("executionDate", MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); Date executionDate = DateTimeUtil.parseDate(MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionId(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID); verify(mockSuspensionStateBuilder).executionDate(executionDate); verify(mockSuspensionStateBuilder).includeJobs(true); verify(mockSuspensionStateBuilder).suspend(); }
@Test public void testSuspendJobDefinitionByProcessDefinitionKeyIncludingInstaces() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", true); params.put("includeJobs", true); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).includeJobs(true); verify(mockSuspensionStateBuilder).suspend(); }
public void suspendJobDefinitionByProcessDefinitionKey(String processDefinitionKey) { updateJobDefinitionSuspensionState() .byProcessDefinitionKey(processDefinitionKey) .suspend(); }
public void activateJobDefinitionByProcessDefinitionKey(String processDefinitionKey) { updateJobDefinitionSuspensionState() .byProcessDefinitionKey(processDefinitionKey) .activate(); }
public void activateJobDefinitionByProcessDefinitionKey(String processDefinitionKey, boolean activateJobs) { updateJobDefinitionSuspensionState() .byProcessDefinitionKey(processDefinitionKey) .includeJobs(activateJobs) .activate(); }
@Test public void testActivateJobDefinitionByProcessDefinitionKeyIncludingInstaces() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", false); params.put("includeJobs", true); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).includeJobs(true); verify(mockSuspensionStateBuilder).activate(); }
@Test public void activateJobDefinitionIncludingJobsForNonTenant() { // given suspend job definitions engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .includeJobs(true) .suspend(); JobQuery query = engineRule.getManagementService().createJobQuery(); assertThat(query.suspended().count(), is(3L)); assertThat(query.active().count(), is(0L)); engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionWithoutTenantId() .includeJobs(true) .activate(); assertThat(query.suspended().count(), is(2L)); assertThat(query.active().count(), is(1L)); assertThat(query.active().withoutTenantId().count(), is(1L)); }
@Test public void activateJobDefinitionIncludingJobsForTenant() { // given suspend job definitions engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .includeJobs(true) .suspend(); JobQuery query = engineRule.getManagementService().createJobQuery(); assertThat(query.suspended().count(), is(3L)); assertThat(query.active().count(), is(0L)); engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionTenantId(TENANT_ONE) .includeJobs(true) .activate(); assertThat(query.suspended().count(), is(2L)); assertThat(query.active().count(), is(1L)); assertThat(query.active().tenantIdIn(TENANT_ONE).count(), is(1L)); }
@Test public void testActivateJobDefinitionByProcessDefinitionKeyWithoutTenantId() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", false); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); params.put("processDefinitionWithoutTenantId", true); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).processDefinitionWithoutTenantId(); verify(mockSuspensionStateBuilder).activate(); }
@Test public void testActivateJobDefinitionByProcessDefinitionKeyAndTenantId() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", false); params.put("processDefinitionKey", MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); params.put("processDefinitionTenantId", MockProvider.EXAMPLE_TENANT_ID); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY); verify(mockSuspensionStateBuilder).processDefinitionTenantId(MockProvider.EXAMPLE_TENANT_ID); verify(mockSuspensionStateBuilder).activate(); }
@Test public void suspendJobDefinitionForNonTenant() { // given activated job definitions JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionWithoutTenantId() .suspend(); assertThat(query.active().count(), is(2L)); assertThat(query.suspended().count(), is(1L)); assertThat(query.suspended().withoutTenantId().count(), is(1L)); }
@Test public void suspendJobDefinitionForTenant() { // given activated job definitions JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionTenantId(TENANT_ONE) .suspend(); assertThat(query.active().count(), is(2L)); assertThat(query.suspended().count(), is(1L)); assertThat(query.suspended().tenantIdIn(TENANT_ONE).count(), is(1L)); }
@Test public void testDelayedSuspendJobDefinitionByProcessDefinitionId() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", true); params.put("processDefinitionId", MockProvider.EXAMPLE_PROCESS_DEFINITION_ID); params.put("executionDate", MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); Date executionDate = DateTimeUtil.parseDate(MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionId(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID); verify(mockSuspensionStateBuilder).executionDate(executionDate); verify(mockSuspensionStateBuilder).suspend(); }
@Test public void suspendAndActivateJobDefinitionsForAllTenants() { // given activated job definitions JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); // first suspend engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .suspend(); assertThat(query.active().count(), is(0L)); assertThat(query.suspended().count(), is(3L)); // then activate engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .activate(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); }
@Test public void testDelayedActivateJobDefinitionByProcessDefinitionId() { Map<String, Object> params = new HashMap<String, Object>(); params.put("suspended", false); params.put("processDefinitionId", MockProvider.EXAMPLE_PROCESS_DEFINITION_ID); params.put("executionDate", MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); Date executionDate = DateTimeUtil.parseDate(MockProvider.EXAMPLE_PROCESS_DEFINITION_DELAYED_EXECUTION); given() .contentType(ContentType.JSON) .body(params) .then() .expect() .statusCode(Status.NO_CONTENT.getStatusCode()) .when() .put(JOB_DEFINITION_SUSPENDED_URL); verify(mockSuspensionStateSelectBuilder).byProcessDefinitionId(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID); verify(mockSuspensionStateBuilder).executionDate(executionDate); verify(mockSuspensionStateBuilder).activate(); }
@Test public void delayedSuspendJobDefinitionsForAllTenants() { // given activated job definitions engineRule.getManagementService() .updateJobDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .executionDate(tomorrow()) .suspend(); JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); // when execute the job to suspend the job definitions Job job = engineRule.getManagementService().createJobQuery().timers().singleResult(); assertThat(job, is(notNullValue())); engineRule.getManagementService().executeJob(job.getId()); assertThat(query.active().count(), is(0L)); assertThat(query.suspended().count(), is(3L)); }