Merge branch 'RED-7677' into 'master'
RED-7677 - dossier-template endpoint should return a 400 if validFrom > validTo Closes RED-7677 See merge request redactmanager/persistence-service!206
This commit is contained in:
commit
79287d435d
@ -48,6 +48,7 @@ public class DossierTemplatePersistenceService {
|
|||||||
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
|
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
|
||||||
|
|
||||||
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
|
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
|
||||||
|
validateDossierTemplateDates(createOrUpdateDossierRequest.getValidFrom(), createOrUpdateDossierRequest.getValidTo());
|
||||||
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
|
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
|
||||||
Optional<DossierTemplateEntity> dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierRequest.getDossierTemplateId());
|
Optional<DossierTemplateEntity> dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierRequest.getDossierTemplateId());
|
||||||
if (dossierTemplate.isPresent()) {
|
if (dossierTemplate.isPresent()) {
|
||||||
@ -87,6 +88,14 @@ public class DossierTemplatePersistenceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void validateDossierTemplateDates(OffsetDateTime validFrom, OffsetDateTime validTo) {
|
||||||
|
|
||||||
|
if (validFrom != null && validTo != null && validFrom.isAfter(validTo)) {
|
||||||
|
throw new BadRequestException("Invalid dates! validFrom can't be after validTo.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void validateDossierTemplateNameIsUnique(String templateName) {
|
public void validateDossierTemplateNameIsUnique(String templateName) {
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,13 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -30,6 +34,7 @@ import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkCl
|
|||||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob;
|
import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.export.ExportDownloadMessageReceiver;
|
import com.iqser.red.service.persistence.management.v1.processor.service.export.ExportDownloadMessageReceiver;
|
||||||
@ -784,4 +789,25 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
|||||||
assertThat(loadedTemplate.isRemoveWatermark()).isFalse();
|
assertThat(loadedTemplate.isRemoveWatermark()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDossierTemplateWithInvalidDates() {
|
||||||
|
|
||||||
|
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||||
|
|
||||||
|
var allTemplates = dossierTemplateClient.getAllDossierTemplates();
|
||||||
|
assertThat(allTemplates.size()).isEqualTo(1);
|
||||||
|
assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate);
|
||||||
|
|
||||||
|
// update
|
||||||
|
var cru = new DossierTemplateModel();
|
||||||
|
cru.setDossierTemplateId(dossierTemplate.getId());
|
||||||
|
BeanUtils.copyProperties(dossierTemplate, cru);
|
||||||
|
cru.setName("Template 1 Update");
|
||||||
|
cru.setValidTo(OffsetDateTime.of(2020, 1, 1, 1, 1, 1, 1, ZoneOffset.UTC));
|
||||||
|
cru.setValidFrom(OffsetDateTime.of(2020, 1, 2, 1, 1, 1, 1, ZoneOffset.UTC));
|
||||||
|
|
||||||
|
FeignException exception = assertThrows(FeignException.class, () -> dossierTemplateClient.createOrUpdateDossierTemplate(cru));
|
||||||
|
assertTrue(exception.getMessage().contains("Invalid dates! validFrom can't be after validTo."));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user