diff --git a/activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java b/activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java index fd7d97444fba69074ccce644151b1dd5f6fc121d..82528e792ea8cd68319248b8b707b2a3bab237e8 100755 --- a/activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java +++ b/activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -273,6 +273,7 @@ public class BpmnDeployer implements Deployer { if (persistedProcessDefinition != null) { processDefinition.setId(persistedProcessDefinition.getId()); processDefinition.setVersion(persistedProcessDefinition.getVersion()); + processDefinition.setAppVersion(persistedProcessDefinition.getAppVersion()); processDefinition.setSuspensionState(persistedProcessDefinition.getSuspensionState()); } } diff --git a/activiti-core/activiti-engine/src/test/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployerTest.java b/activiti-core/activiti-engine/src/test/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..88b07ceb6ad26f34dcfd7f41b35de4ab18836119 --- /dev/null +++ b/activiti-core/activiti-engine/src/test/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployerTest.java @@ -0,0 +1,72 @@ +/* + * Copyright 2020 Alfresco, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.activiti.engine.impl.bpmn.deployer; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.MockitoAnnotations.initMocks; + +import java.util.Collections; +import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntityImpl; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +public class BpmnDeployerTest { + + @InjectMocks + private BpmnDeployer bpmnDeployer; + + @Mock + private BpmnDeploymentHelper bpmnDeploymentHelper; + + @Before + public void setUp() throws Exception { + initMocks(this); + } + + @Test + public void makeProcessDefinitionsConsistentWithPersistedVersions_should_setAppVersion() { + //given + ParsedDeployment parsedDeployment = mock(ParsedDeployment.class); + ProcessDefinitionEntityImpl parsedProcessDefinition = new ProcessDefinitionEntityImpl(); + + given(parsedDeployment.getAllProcessDefinitions()).willReturn(Collections.singletonList( + parsedProcessDefinition)); + + ProcessDefinitionEntityImpl persistedProcessDefinition = new ProcessDefinitionEntityImpl(); + persistedProcessDefinition.setId("procId"); + persistedProcessDefinition.setVersion(1); + persistedProcessDefinition.setAppVersion(2); + given(bpmnDeploymentHelper.getPersistedInstanceOfProcessDefinition(parsedProcessDefinition)) + .willReturn(persistedProcessDefinition); + + //when + bpmnDeployer.makeProcessDefinitionsConsistentWithPersistedVersions( + parsedDeployment); + + //then + assertThat(parsedProcessDefinition.getId()).isEqualTo(persistedProcessDefinition.getId()); + assertThat(parsedProcessDefinition.getVersion()).isEqualTo(persistedProcessDefinition.getVersion()); + assertThat(parsedProcessDefinition.getAppVersion()).isEqualTo(persistedProcessDefinition.getAppVersion()); + assertThat(parsedProcessDefinition.getSuspensionState()).isEqualTo(persistedProcessDefinition.getSuspensionState()); + + } + +}