RED-10415: Error when deleting entities from Templates without dossiers
This commit is contained in:
parent
70d55ac6c3
commit
215afe0834
@ -268,7 +268,7 @@ public class DictionaryService {
|
||||
@PreAuthorize("hasAuthority('" + DELETE_DOSSIER_DICTIONARY_TYPE + "')")
|
||||
public void deleteDossierType(String type, String dossierTemplateId, String dossierId) {
|
||||
|
||||
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
||||
accessControlService.checkAccessPermissionsToDossier(dossierId);
|
||||
accessControlService.verifyUserIsMemberOrApprover(dossierId);
|
||||
deleteType(toTypeId(type, dossierTemplateId, dossierId));
|
||||
}
|
||||
|
||||
@ -20,6 +20,7 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||
@ -29,12 +30,15 @@ import com.iqser.red.service.persistence.management.v1.processor.service.Diction
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.model.UpdateEntries;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.TypeResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.TypeValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.UpdateTypeValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dictionary.Dictionary;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dictionary.DictionaryDifference;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dictionary.DictionaryDifferencePerType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dictionary.DictionaryDifferenceResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
||||
import com.knecon.fforesight.tenantcommons.TenantContext;
|
||||
|
||||
@ -60,6 +64,9 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
@Autowired
|
||||
private DossierTemplateClient dossierTemplateClient;
|
||||
|
||||
@Autowired
|
||||
private DossierClient dossierClient;
|
||||
|
||||
private final List<String> testList1 = List.of("William c. Spare", "Charalampos", "Carina Wilson", "PATRICIA A. SHEEHY", "William C. Spare", "carlsen", "Patricia A. Sheehy");
|
||||
private final List<String> testList2 = List.of("William C. Spare", "Charalampos", "Carina Wilson", "Patricia A. Sheehy", "William c. Spare", "carlsen", "PATRICIA A. SHEEHY");
|
||||
|
||||
@ -409,19 +416,19 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
.build());
|
||||
assertThat(returnedtype1.isDossierDictionaryOnly()).isTrue();
|
||||
|
||||
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), null, false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), dossier.getId(), false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(2);
|
||||
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), null, false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), dossier.getId(), false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(2);
|
||||
var dictionary = dictionaryClient.getDictionaryForType(returnedtype1.getType(), dossier.getDossierTemplateId(), dossier2.getId());
|
||||
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), dossier2.getId(), false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(2);
|
||||
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), dossier2.getId(), false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(2);
|
||||
}
|
||||
|
||||
|
||||
@ -461,9 +468,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(actualEntries).usingComparator(new ListContentWithoutOrderAndWithoutDuplicatesComparator<>()).isEqualTo(entries);
|
||||
|
||||
dictionaryClient.deleteType(createdType.getType(), createdType.getDossierTemplateId());
|
||||
assertThat(dictionaryClient.getAllTypes(createdType.getDossierTemplateId(), null, false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList()).size()).isEqualTo(0);
|
||||
assertThat(dictionaryClient.getAllTypes(createdType.getDossierTemplateId(), null, false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(0);
|
||||
|
||||
dictionaryClient.addType(type);
|
||||
|
||||
@ -1019,20 +1027,20 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
.build());
|
||||
assertThat(dtType.getRank()).isEqualTo(100);
|
||||
assertThat(dtType.isDossierDictionaryOnly()).isFalse();
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(1);
|
||||
|
||||
dictionaryClient.deleteType(dtType.getType(), dtType.getDossierTemplateId());
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(0);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(0);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(1);
|
||||
|
||||
var dtType2 = dictionaryClient.addType(CreateTypeValue.builder()
|
||||
.type("test2")
|
||||
@ -1046,24 +1054,24 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.dossierDictionaryOnly(false)
|
||||
.build());
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(2);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(2);
|
||||
|
||||
assertThat(dtType2.getRank()).isEqualTo(dtType.getRank());
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(2);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), true)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(3);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(2);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), true).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(3);
|
||||
|
||||
}
|
||||
|
||||
@ -1096,14 +1104,16 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
.dossierDictionaryOnly(false)
|
||||
.build());
|
||||
|
||||
List<TypeValue> types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes().stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList());
|
||||
List<TypeValue> types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList());
|
||||
assertThat(types.size()).isEqualTo(1);
|
||||
|
||||
String dictionaryEntry = "entry1";
|
||||
dictionaryManagementService.addEntries(dtType.getTypeId(), List.of(dictionaryEntry), false, false, DictionaryEntryType.ENTRY, true);
|
||||
var dictionaryEntries = dictionaryManagementService.getAllEntriesInDossierTemplate(dtType.getTypeId(), dictionaryEntry, DictionaryEntryType.ENTRY);
|
||||
|
||||
|
||||
assertThat(types.get(0).isHasDictionary()).isFalse();
|
||||
assertThat(dictionaryEntries.get(0).getValue()).isEqualTo(dictionaryEntry);
|
||||
}
|
||||
@ -1130,10 +1140,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
.build());
|
||||
assertThat(dtType.getRank()).isEqualTo(100);
|
||||
assertThat(dtType.isDossierDictionaryOnly()).isFalse();
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true)
|
||||
.getTypes()
|
||||
.stream().filter(t -> !t.isSystemManaged()).collect(Collectors.toList())
|
||||
.size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.collect(Collectors.toList()).size()).isEqualTo(1);
|
||||
|
||||
assertThatThrownBy(() -> dictionaryManagementService.addEntries(dtType.getTypeId(),
|
||||
List.of("entry1", "entry2"),
|
||||
@ -1144,6 +1154,57 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testDeleteDossierThenDeleteType() {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "TestDossier");
|
||||
|
||||
CreateTypeValue createTypeValue = CreateTypeValue.builder()
|
||||
.type("test_type")
|
||||
.label("Test Type")
|
||||
.hexColor("#fcba03")
|
||||
.rank(100)
|
||||
.hint(false)
|
||||
.caseInsensitive(false)
|
||||
.recommendation(false)
|
||||
.addToDictionaryAction(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.dossierDictionaryOnly(false)
|
||||
.build();
|
||||
|
||||
var type = dictionaryClient.addType(createTypeValue);
|
||||
|
||||
List<TypeValue> customTypes = dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.toList();
|
||||
|
||||
assertEquals(2, customTypes.size());
|
||||
|
||||
dossierClient.deleteDossier(dossier.getId());
|
||||
|
||||
dictionaryClient.deleteType(type.getType(), type.getDossierTemplateId());
|
||||
|
||||
var types = dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.toList();
|
||||
|
||||
assertThat(types).isEmpty();
|
||||
|
||||
dictionaryClient.addType(createTypeValue);
|
||||
|
||||
customTypes = dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes()
|
||||
.stream()
|
||||
.filter(t -> !t.isSystemManaged())
|
||||
.toList();
|
||||
|
||||
assertEquals(2, customTypes.size());
|
||||
}
|
||||
|
||||
|
||||
private static final class ListContentWithoutOrderAndWithoutDuplicatesComparator<T> implements Comparator<List<? extends T>> {
|
||||
|
||||
@SuppressWarnings("SuspiciousMethodCalls")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user