RED-7677 - dossier-template endpoint should return a 400 if validFrom > validTo
This commit is contained in:
parent
0a8347d326
commit
e1007dc5c4
@ -48,6 +48,7 @@ public class DossierTemplatePersistenceService {
|
||||
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
|
||||
|
||||
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
|
||||
validateDossierTemplateDates(createOrUpdateDossierRequest.getValidFrom(), createOrUpdateDossierRequest.getValidTo());
|
||||
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
|
||||
Optional<DossierTemplateEntity> dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierRequest.getDossierTemplateId());
|
||||
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
|
||||
public void validateDossierTemplateNameIsUnique(String templateName) {
|
||||
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
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.time.OffsetDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Collections;
|
||||
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.DossierTesterAndProvider;
|
||||
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.service.FileManagementStorageService;
|
||||
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();
|
||||
}
|
||||
|
||||
@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