RED-4598 -
- when updating the dossier check first if watermark id has changed before validating the - update tests
This commit is contained in:
parent
6e77da5d64
commit
3c9cf65086
@ -46,7 +46,7 @@ public class DossierPersistenceService {
|
||||
public DossierEntity insert(CreateOrUpdateDossierRequest createOrUpdateDossierRequest) {
|
||||
|
||||
DossierEntity dossier = new DossierEntity();
|
||||
BeanUtils.copyProperties(createOrUpdateDossierRequest, dossier);
|
||||
BeanUtils.copyProperties(createOrUpdateDossierRequest, dossier, "watermarkId", "previewWatermarkId");
|
||||
dossier.setId(UUID.randomUUID().toString());
|
||||
dossier.setDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
dossier.setLastUpdated(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
@ -66,7 +66,7 @@ public class DossierPersistenceService {
|
||||
public void update(String dossierId, CreateOrUpdateDossierRequest createOrUpdateDossierRequest) {
|
||||
|
||||
dossierRepository.findById(dossierId).ifPresent(dossier -> {
|
||||
BeanUtils.copyProperties(createOrUpdateDossierRequest, dossier);
|
||||
BeanUtils.copyProperties(createOrUpdateDossierRequest, dossier, "watermarkId", "previewWatermarkId");
|
||||
dossier.setDossierTemplate(dossierTemplateRepository.getOne(createOrUpdateDossierRequest.getDossierTemplateId()));
|
||||
dossier.setLastUpdated(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
|
||||
@ -99,27 +99,33 @@ public class DossierPersistenceService {
|
||||
|
||||
private void handleWatermark(CreateOrUpdateDossierRequest createOrUpdateDossierRequest, DossierEntity dossier) {
|
||||
if (createOrUpdateDossierRequest.getWatermarkId() != null) {
|
||||
var watermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getWatermarkId());
|
||||
if (watermarkEntity.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
if (!watermarkEntity.isEnabled()) {
|
||||
throw new BadRequestException("Watermark configuration is disabled");
|
||||
if (!createOrUpdateDossierRequest.getWatermarkId().equals(dossier.getWatermarkId())) {
|
||||
var watermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getWatermarkId());
|
||||
if (watermarkEntity.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
if (!watermarkEntity.isEnabled()) {
|
||||
throw new BadRequestException("Watermark configuration is disabled");
|
||||
}
|
||||
dossier.setWatermarkId(createOrUpdateDossierRequest.getWatermarkId());
|
||||
dossier.setWatermark(watermarkEntity);
|
||||
} else {
|
||||
throw new BadRequestException("Invalid watermark id - dossierTemplate id does not match");
|
||||
}
|
||||
dossier.setWatermark(watermarkEntity);
|
||||
} else {
|
||||
throw new BadRequestException("Invalid watermark id - dossierTemplate id does not match");
|
||||
}
|
||||
} else {
|
||||
dossier.setWatermark(null);
|
||||
}
|
||||
if (createOrUpdateDossierRequest.getPreviewWatermarkId() != null) {
|
||||
var previewWatermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getPreviewWatermarkId());
|
||||
if (previewWatermarkEntity.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
if (!previewWatermarkEntity.isEnabled()) {
|
||||
throw new BadRequestException("Preview watermark configuration is disabled");
|
||||
if (!createOrUpdateDossierRequest.getPreviewWatermarkId().equals(dossier.getPreviewWatermarkId())) {
|
||||
var previewWatermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getPreviewWatermarkId());
|
||||
if (previewWatermarkEntity.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
if (!previewWatermarkEntity.isEnabled()) {
|
||||
throw new BadRequestException("Preview watermark configuration is disabled");
|
||||
}
|
||||
dossier.setPreviewWatermarkId(createOrUpdateDossierRequest.getPreviewWatermarkId());
|
||||
dossier.setPreviewWatermark(previewWatermarkEntity);
|
||||
} else {
|
||||
throw new BadRequestException("Invalid preview watermark id - dossierTemplate id does not match");
|
||||
}
|
||||
dossier.setPreviewWatermark(previewWatermarkEntity);
|
||||
} else {
|
||||
throw new BadRequestException("Invalid preview watermark id - dossierTemplate id does not match");
|
||||
}
|
||||
} else {
|
||||
dossier.setPreviewWatermark(null);
|
||||
|
||||
@ -77,7 +77,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
var changes = dossierClient.changesSince(JSONPrimitive.of(start));
|
||||
assertThat(changes).isNotEmpty();
|
||||
|
||||
// update
|
||||
// update with a disabled preview watermark
|
||||
CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest();
|
||||
cru.setDossierTemplateId(dossier.getId());
|
||||
cru.setWatermarkId(watermarkConfig.getId());
|
||||
@ -102,14 +102,35 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
}
|
||||
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
// update the watermark preview to an enabled one
|
||||
var updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierName()).isEqualTo("Dossier 1 Update");
|
||||
assertThat(updated.getWatermarkId()).isNull();
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getDossierStatusId()).isEqualTo(loadedDossierStatus.getId());
|
||||
|
||||
assertThat(watermarkClient.isWatermarkUsed(watermarkConfig.getId())).isEqualTo(JSONPrimitive.of(true));
|
||||
|
||||
// disable the watermark used
|
||||
watermarkConfig.setEnabled(false);
|
||||
watermarkClient.createOrUpdateWatermark(watermarkConfig);
|
||||
// update dossier description, while the watermark used was disabled
|
||||
cru.setDescription("new description");
|
||||
updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDescription()).isEqualTo(cru.getDescription());
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getWatermarkId()).isNull();
|
||||
|
||||
cru.setPreviewWatermarkId(watermarkConfigDisabled.getId());
|
||||
//try to update the dossier with a different disabled watermark
|
||||
try {
|
||||
dossierClient.updateDossier(cru, dossier.getId());
|
||||
} catch (FeignException e) {
|
||||
assertThat(e.status()).isEqualTo(400);
|
||||
}
|
||||
|
||||
// put dossier status to null
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
cru.setDossierStatusId(null);
|
||||
updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierStatusId()).isNull();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user