Merge branch 'RED-9925' into 'master'
RED-9925: 500 when creating justification without technical name or name Closes RED-9925 See merge request redactmanager/persistence-service!748
This commit is contained in:
commit
47ce4fab61
@ -28,8 +28,8 @@ public class LegalBasisMappingPersistenceService {
|
||||
|
||||
private final LegalBasisMappingRepository legalBasisMappingRepository;
|
||||
|
||||
private final int MAX_NAME_LENGTH = 255;
|
||||
private final int MAX_LEGAL_BASIS_LENGTH = 4000;
|
||||
public static final int MAX_NAME_LENGTH = 255;
|
||||
public static final int MAX_LEGAL_BASIS_FIELD_LENGTH = 4000;
|
||||
|
||||
|
||||
@Transactional
|
||||
@ -75,12 +75,7 @@ public class LegalBasisMappingPersistenceService {
|
||||
@Transactional
|
||||
public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) {
|
||||
|
||||
if (legalBasis.getTechnicalName() == null) {
|
||||
throw new BadRequestException("Can not add or update legal basis in dossier template because technical name it is not set.");
|
||||
}
|
||||
if (legalBasis.getName() == null) {
|
||||
throw new BadRequestException("Can not add or update legal basis in dossier template because name it is not set.");
|
||||
}
|
||||
validateLegalBasis(legalBasis);
|
||||
|
||||
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
|
||||
|
||||
@ -132,20 +127,20 @@ public class LegalBasisMappingPersistenceService {
|
||||
throw new BadRequestException("The name cannot be empty!");
|
||||
}
|
||||
|
||||
if (legalBasis.getTechnicalName().length() > MAX_LEGAL_BASIS_FIELD_LENGTH) {
|
||||
throw new BadRequestException(String.format("The legal basis is too long (%s), max length %s", legalBasis.getTechnicalName().length(), MAX_LEGAL_BASIS_FIELD_LENGTH));
|
||||
}
|
||||
|
||||
if (legalBasis.getName().length() > MAX_NAME_LENGTH) {
|
||||
throw new BadRequestException(String.format("The name is too long (%s), max length %s", legalBasis.getName().length(), MAX_NAME_LENGTH));
|
||||
}
|
||||
|
||||
if (legalBasis.getDescription().length() > MAX_LEGAL_BASIS_LENGTH) {
|
||||
throw new BadRequestException(String.format("The description is too long (%s), max length %s", legalBasis.getDescription().length(), MAX_LEGAL_BASIS_LENGTH));
|
||||
if (legalBasis.getDescription() != null && legalBasis.getDescription().length() > MAX_LEGAL_BASIS_FIELD_LENGTH) {
|
||||
throw new BadRequestException(String.format("The description is too long (%s), max length %s", legalBasis.getDescription().length(), MAX_LEGAL_BASIS_FIELD_LENGTH));
|
||||
}
|
||||
|
||||
if (legalBasis.getReason().length() > MAX_LEGAL_BASIS_LENGTH) {
|
||||
throw new BadRequestException(String.format("The legal basis is too long (%s), max length %s", legalBasis.getReason().length(), MAX_LEGAL_BASIS_LENGTH));
|
||||
}
|
||||
|
||||
if (legalBasis.getTechnicalName().length() > MAX_LEGAL_BASIS_LENGTH) {
|
||||
throw new BadRequestException(String.format("The legal basis is too long (%s), max length %s", legalBasis.getTechnicalName().length(), MAX_LEGAL_BASIS_LENGTH));
|
||||
if (legalBasis.getReason() != null && legalBasis.getReason().length() > MAX_LEGAL_BASIS_FIELD_LENGTH) {
|
||||
throw new BadRequestException(String.format("The legal basis is too long (%s), max length %s", legalBasis.getReason().length(), MAX_LEGAL_BASIS_FIELD_LENGTH));
|
||||
}
|
||||
}
|
||||
|
||||
@ -153,6 +148,8 @@ public class LegalBasisMappingPersistenceService {
|
||||
@Transactional
|
||||
public void setLegalBasisMapping(String dossierTemplateId, List<LegalBasis> legalBasisMapping) {
|
||||
|
||||
legalBasisMapping.forEach(this::validateLegalBasis);
|
||||
|
||||
legalBasisMappingRepository.findById(dossierTemplateId).ifPresentOrElse((lbm) -> {
|
||||
lbm.setVersion(lbm.getVersion() + 1);
|
||||
lbm.setLegalBasis(convert(legalBasisMapping, LegalBasisEntity.class));
|
||||
|
||||
@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.assertj.core.util.Lists;
|
||||
@ -15,6 +16,7 @@ import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisC
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.VersionClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
||||
|
||||
import feign.FeignException;
|
||||
@ -88,12 +90,67 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
|
||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
assertThat(mapping.size()).isEqualTo(2);
|
||||
|
||||
LegalBasis finalLegalBasis2 = LegalBasis.builder().name(null).description("test").reason("test").technicalName("test").build();
|
||||
var e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis2));
|
||||
LegalBasis finalLegalBasis1 = LegalBasis.builder().name(null).description("test").reason("test").technicalName("test").build();
|
||||
var e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis1));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis finalLegalBasis1 = LegalBasis.builder().name("test").description("test").reason("test").technicalName(null).build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis1));
|
||||
LegalBasis finalLegalBasis2 = LegalBasis.builder().name("test").description("test").reason("test").technicalName(null).build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis2));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
legalBasis = LegalBasis.builder().name("test 4").description(null).reason("test ").technicalName("test 4").build();
|
||||
legalBasisClient.setLegalBasisMapping(List.of(legalBasis), dossierTemplate.getId());
|
||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
assertThat(mapping.size()).isEqualTo(1);
|
||||
|
||||
legalBasis = LegalBasis.builder().name("test 5").description("test 5").reason(null).technicalName("test 5").build();
|
||||
legalBasisClient.setLegalBasisMapping(List.of(legalBasis), dossierTemplate.getId());
|
||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
assertThat(mapping.size()).isEqualTo(1);
|
||||
|
||||
LegalBasis finalLegalBasis3 = LegalBasis.builder().name(null).description("test").reason("test").technicalName("test").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.setLegalBasisMapping(List.of(finalLegalBasis3), dossierTemplate.getId()));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis finalLegalBasis4 = LegalBasis.builder().name("test").description("test").reason("test").technicalName(null).build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.setLegalBasisMapping(List.of(finalLegalBasis4), dossierTemplate.getId()));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
|
||||
String longName = "a".repeat(LegalBasisMappingPersistenceService.MAX_NAME_LENGTH + 1);
|
||||
String longField = "a".repeat(LegalBasisMappingPersistenceService.MAX_LEGAL_BASIS_FIELD_LENGTH + 1);
|
||||
|
||||
LegalBasis longNameLegalBasis = LegalBasis.builder().name(longName).description("valid description").reason("valid reason").technicalName("valid technical name").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), longNameLegalBasis));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis validLegalBasis = LegalBasis.builder().name("valid name").description("valid description").reason("valid reason").technicalName("valid technical name").build();
|
||||
LegalBasis longNameSetLegalBasis = LegalBasis.builder().name(longName).description("valid description").reason("valid reason").technicalName("valid technical name").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.setLegalBasisMapping(List.of(validLegalBasis, longNameSetLegalBasis), dossierTemplate.getId()));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis longDescriptionLegalBasis = LegalBasis.builder().name("valid name").description(longField).reason("valid reason").technicalName("valid technical name").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), longDescriptionLegalBasis));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis longDescriptionSetLegalBasis = LegalBasis.builder().name("valid name").description(longField).reason("valid reason").technicalName("valid technical name").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.setLegalBasisMapping(List.of(validLegalBasis, longDescriptionSetLegalBasis), dossierTemplate.getId()));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis longReasonLegalBasis = LegalBasis.builder().name("valid name").description("valid description").reason(longField).technicalName("valid technical name").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), longReasonLegalBasis));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis longReasonSetLegalBasis = LegalBasis.builder().name("valid name").description("valid description").reason(longField).technicalName("valid technical name").build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.setLegalBasisMapping(List.of(validLegalBasis, longReasonSetLegalBasis), dossierTemplate.getId()));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis longTechnicalNameLegalBasis = LegalBasis.builder().name("valid name").description("valid description").reason("valid reason").technicalName(longField).build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), longTechnicalNameLegalBasis));
|
||||
assertEquals(e.status(), 400);
|
||||
|
||||
LegalBasis longTechnicalNameSetLegalBasis = LegalBasis.builder().name("valid name").description("valid description").reason("valid reason").technicalName(longField).build();
|
||||
e = assertThrows(FeignException.class, () -> legalBasisClient.setLegalBasisMapping(List.of(validLegalBasis, longTechnicalNameSetLegalBasis), dossierTemplate.getId()));
|
||||
assertEquals(e.status(), 400);
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user