RED-10628 - Cloning dossier template after removing and editing component definitions causes chain of issues
- when cloning a dossier template clone only the component definitions which are not soft deleted - unit test added
This commit is contained in:
parent
9718f8d3fd
commit
2b27e39234
@ -156,7 +156,7 @@ public class DossierTemplateCloneService {
|
||||
|
||||
private void cloneComponents(String dossierTemplate, String clonedDossierTemplateId) {
|
||||
|
||||
List<ComponentDefinitionEntity> componentDefinitionEntities = componentDefinitionPersistenceService.findComponentsByDossierTemplateId(dossierTemplate);
|
||||
List<ComponentDefinitionEntity> componentDefinitionEntities = componentDefinitionPersistenceService.findByDossierTemplateIdAndNotSoftDeleted(dossierTemplate);
|
||||
|
||||
for (ComponentDefinitionEntity componentDefinitionEntity : componentDefinitionEntities) {
|
||||
ComponentDefinitionAddRequest componentDefinitionAddRequest = ComponentDefinitionAddRequest.builder()
|
||||
|
||||
@ -11,6 +11,7 @@ import java.util.List;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateExternalClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
@ -19,6 +20,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemp
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinition;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinitionAddRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinitionUpdateRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest;
|
||||
|
||||
import feign.FeignException;
|
||||
|
||||
@ -33,6 +35,9 @@ public class ComponentDefinitionTests extends AbstractPersistenceServerServiceTe
|
||||
@Autowired
|
||||
private ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
||||
|
||||
@Autowired
|
||||
private DossierTemplateClient dossierTemplateClient;
|
||||
|
||||
|
||||
@Test
|
||||
public void testCreateComponentDefinition() {
|
||||
@ -294,4 +299,50 @@ public class ComponentDefinitionTests extends AbstractPersistenceServerServiceTe
|
||||
assertEquals(newOrder.get(2).getRank(), 3);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSoftDeleteComponentDefinitionAndReOrder() { //RED-10628
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
var componentDefinitionAddRequest1 = ComponentDefinitionAddRequest.builder().technicalName("Component 1").displayName("Component 1").description("Description").build();
|
||||
var componentDefinitionAddRequest2 = ComponentDefinitionAddRequest.builder().technicalName("Component 2").displayName("Component 2").description("Description").build();
|
||||
var componentDefinitionAddRequest3 = ComponentDefinitionAddRequest.builder().technicalName("Component 3").displayName("Component 3").description("Description").build();
|
||||
var componentDefinitionAddRequest4 = ComponentDefinitionAddRequest.builder().technicalName("Component 4").displayName("Component 4").description("Description").build();
|
||||
var componentDefinitionAddRequest5 = ComponentDefinitionAddRequest.builder().technicalName("Component 5").displayName("Component 5").description("Description").build();
|
||||
var componentDefinitionAddRequest6 = ComponentDefinitionAddRequest.builder().technicalName("Component 6").displayName("Component 6").description("Description").build();
|
||||
var componentDefinitionAddRequest7 = ComponentDefinitionAddRequest.builder().technicalName("Component 7").displayName("Component 7").description("Description").build();
|
||||
|
||||
var response = dossierTemplateExternalClient.createComponents(dossierTemplate.getId(),
|
||||
List.of(componentDefinitionAddRequest1, componentDefinitionAddRequest2, componentDefinitionAddRequest3,
|
||||
componentDefinitionAddRequest4, componentDefinitionAddRequest5, componentDefinitionAddRequest6, componentDefinitionAddRequest7));
|
||||
assertEquals(response.size(), 7);
|
||||
|
||||
// delete first component
|
||||
dossierTemplateExternalClient.deleteComponents(dossierTemplate.getId(), List.of(response.get(0).getId()));
|
||||
var softDeletedComponent = dossierTemplateExternalClient.getComponent(dossierTemplate.getId(), response.get(0).getId());
|
||||
assertNotNull(softDeletedComponent.getSoftDeleteTime());
|
||||
|
||||
var response1 = dossierTemplateExternalClient.getComponents(dossierTemplate.getId(), false);
|
||||
assertEquals(response1.size(), 6);
|
||||
|
||||
String firstComponentId = response1.get(0).getId();
|
||||
String secondComponentId = response1.get(1).getId();
|
||||
String thirdComponentId = response1.get(2).getId();
|
||||
|
||||
var newOrder = dossierTemplateExternalClient.reorderComponents(dossierTemplate.getId(), List.of(secondComponentId));
|
||||
assertEquals(newOrder.size(), 6);
|
||||
assertEquals(newOrder.get(0).getId(), secondComponentId);
|
||||
assertEquals(newOrder.get(0).getRank(), 1);
|
||||
assertEquals(newOrder.get(1).getId(), firstComponentId);
|
||||
assertEquals(newOrder.get(1).getRank(), 2);
|
||||
assertEquals(newOrder.get(2).getId(), thirdComponentId);
|
||||
assertEquals(newOrder.get(2).getRank(), 3);
|
||||
|
||||
// clone dossier template
|
||||
CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder().name("Clone of " + dossierTemplate.getName()).cloningUserId("user").build();
|
||||
var clonedDT = dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr);
|
||||
assertEquals(clonedDT.getName(), "Clone of " + dossierTemplate.getName());
|
||||
var response2 = dossierTemplateExternalClient.getComponents(clonedDT.getId(), false);
|
||||
assertEquals(response2.size(), 6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user