more tests

This commit is contained in:
Timo Bejan 2021-09-20 09:50:59 +03:00
parent ddee07b55d
commit 2496d39d11
8 changed files with 172 additions and 18 deletions

View File

@ -0,0 +1,17 @@
package com.iqser.red.service.configuration.v1.api.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
// TODO remove this - compatibility for classpath error
public class LegalBasisMapping {
private String name;
private String description;
private String reason;
}

View File

@ -44,7 +44,6 @@ public class UploadController implements UploadResource {
private final PDFTronRedactionClient pdfTronRedactionClient;
private final FileManagementStorageService fileManagementStorageService;
private final RedactionClient redactionClient;
private final DossierPersistenceService dossierPersistenceService;
@Override
public JSONPrimitive<String> upload(@RequestBody BinaryFileRequest request) {
@ -135,11 +134,13 @@ public class UploadController implements UploadResource {
var fileStatus = fileStatusService.getStatus(fileId);
var dossier = dossierService.getDossierById(dossierId);
PdfTronRedactionResult pdfTronRedactionResult = pdfTronRedactionClient.redact(PdfTronRedactionRequest.builder()
var request = PdfTronRedactionRequest.builder()
.dossierTemplateId(dossier.getDossierTemplateId())
.document(fileManagementStorageService.getStoredObjectBytes(dossierId, fileId, FileType.ORIGIN))
.redactionLog(fileManagementStorageService.getRedactionLog(dossierId, fileId))
.build());
.build();
PdfTronRedactionResult pdfTronRedactionResult = pdfTronRedactionClient.redact(request);
return new BinaryFileResult(pdfTronRedactionResult.getDocument(), fileStatus.getFilename());
}

View File

@ -0,0 +1,9 @@
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.RedactionLogResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "RedactionLogClient", url = "http://localhost:${server.port}")
public interface RedactionLogClient extends RedactionLogResource {
}

View File

@ -1,12 +1,20 @@
package com.iqser.red.service.peristence.v1.server.integration.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
import com.iqser.red.service.peristence.v1.server.integration.client.UploadClient;
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
import com.iqser.red.service.persistence.service.v1.api.model.FileType;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.SectionGrid;
import com.iqser.red.storage.commons.service.StorageService;
import lombok.SneakyThrows;
import org.assertj.core.util.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -18,6 +26,11 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
public class FileTesterAndProvider {
@Autowired
private FileManagementStorageService fileManagementStorageService;
@Autowired
private ObjectMapper objectMapper;
@Autowired
private UploadClient uploadClient;
@ -26,6 +39,7 @@ public class FileTesterAndProvider {
private FileClient fileClient;
@SneakyThrows
public File testAndProvideFile(Dossier dossier){
@ -38,6 +52,9 @@ public class FileTesterAndProvider {
assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1);
fileManagementStorageService.storeObject(dossier.getId(),file.getId(), FileType.REDACTION_LOG, objectMapper.writeValueAsBytes(new RedactionLog(1, Lists.newArrayList(), Lists.newArrayList(),0,0,0,0)));
fileManagementStorageService.storeObject(dossier.getId(),file.getId(), FileType.SECTION_GRID, objectMapper.writeValueAsBytes(new SectionGrid()));
return file;
}

View File

@ -9,6 +9,7 @@ import com.iqser.red.service.peristence.v1.server.integration.service.FileTester
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileStatus;
import org.assertj.core.util.Lists;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@ -55,15 +56,6 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedFile.getExcludedPages()).isEmpty();
fileClient.toggleExclusion(dossier.getId(),file.getId(),true);
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
assertThat(loadedFile.isExcluded()).isTrue();
fileClient.toggleExclusion(dossier.getId(),file.getId(),false);
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
assertThat(loadedFile.isExcluded()).isFalse();
fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), JSONPrimitive.of("1"));
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
@ -91,18 +83,41 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.APPROVED);
fileClient.setStatusUnderReview(dossier.getId(), file.getId());
uploadClient.deleteFile(dossier.getId(),file.getId());
assertThat(uploadClient.getOriginal(dossier.getId(),file.getId())).isNotNull();
assertThat(uploadClient.getRedacted(dossier.getId(),file.getId())).isNotNull();
assertThat(uploadClient.getFlatRedacted(dossier.getId(),file.getId())).isNotNull();
assertThat(uploadClient.getPreview(dossier.getId(),file.getId())).isNotNull();
assertThat(uploadClient.getAnnotated(dossier.getId(),file.getId())).isNotNull();
fileClient.setStatusUnderReview(dossier.getId(), file.getId());
fileClient.toggleExclusion(dossier.getId(),file.getId(),true);
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
assertThat(loadedFile.isExcluded()).isTrue();
fileClient.toggleExclusion(dossier.getId(),file.getId(),false);
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
assertThat(loadedFile.isExcluded()).isFalse();
uploadClient.deleteFile(dossier.getId(),file.getId());
var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId());
assertThat(softDeletedFiles.size()).isEqualTo(1);
var activeFiles = fileClient.getDossierStatus(dossier.getId());
assertThat(activeFiles.size()).isEqualTo(0);
uploadClient.undeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()));
softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId());
assertThat(softDeletedFiles.size()).isEqualTo(0);
activeFiles = fileClient.getDossierStatus(dossier.getId());
assertThat(activeFiles.size()).isEqualTo(1);
uploadClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()));
softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId());
assertThat(softDeletedFiles.size()).isEqualTo(0);
@ -111,5 +126,8 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
assertThat(activeFiles.size()).isEqualTo(0);
}
}

View File

@ -3,6 +3,8 @@ package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.NotificationClient;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.data.audit.AddNotificationRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.notification.Notification;
import org.assertj.core.util.Lists;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,8 +22,48 @@ public class NotificationTest extends AbstractPersistenceServerServiceTest {
notificationClient.addNotification(AddNotificationRequest.builder().notificationType("test").issuerId("1").userId("1").target(Map.of("test", "test")).build());
var notification = getNotification();
assertThat(notification.getReadDate()).isNull();
notificationClient.toggleRead("1", Lists.newArrayList(notification.getId()), true);
notification = getNotification();
assertThat(notification.getReadDate()).isNotNull();
assertThat(notification.getSeenDate()).isNull();
notificationClient.toggleSeen("1", Lists.newArrayList(notification.getId()), true);
notification = getNotification();
assertThat(notification.getSeenDate()).isNotNull();
var currentNotifications = notificationClient.getNotifications("1", false);
assertThat(currentNotifications).isEmpty();
notificationClient.toggleRead("1", Lists.newArrayList(notification.getId()), false);
notification = getNotification();
assertThat(notification.getReadDate()).isNull();
notificationClient.toggleSeen("1", Lists.newArrayList(notification.getId()), false);
notification = getNotification();
assertThat(notification.getSeenDate()).isNull();
notificationClient.softDelete("1",Lists.newArrayList(notification.getId()));
currentNotifications = notificationClient.getNotifications("1", true);
assertThat(currentNotifications).isEmpty();
}
private Notification getNotification() {
var currentNotifications = notificationClient.getNotifications("1", true);
assertThat(currentNotifications.size()).isEqualTo(1);
return currentNotifications.iterator().next();
}
}

View File

@ -0,0 +1,34 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.RedactionLogClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
public class RedactionLogTest extends AbstractPersistenceServerServiceTest {
@Autowired
private FileTesterAndProvider fileTesterAndProvider;
@Autowired
private DossierTesterAndProvider dossierTesterAndProvider;
@Autowired
private RedactionLogClient redactionLogClient;
@Test
public void testRedactionLog() {
var dossier = dossierTesterAndProvider.provideTestDossier();
var file = fileTesterAndProvider.testAndProvideFile(dossier);
assertThat(redactionLogClient.getSectionGrid(dossier.getId(), file.getId())).isNotNull();
assertThat(redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), true)).isNotNull();
assertThat(redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), false)).isNotNull();
}
}

View File

@ -1,7 +1,6 @@
package com.iqser.red.service.peristence.v1.server.integration.utils;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeRequest;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeResponse;
import com.iqser.red.service.pdftron.redaction.v1.api.model.*;
import com.iqser.red.service.peristence.v1.server.Application;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.client.SearchClient;
@ -9,8 +8,13 @@ import com.iqser.red.service.peristence.v1.server.controller.LicenseReportContro
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.*;
import com.iqser.red.service.redaction.v1.model.AnnotateRequest;
import com.iqser.red.service.redaction.v1.model.AnnotateResponse;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.RedactionResult;
import com.iqser.red.storage.commons.StorageAutoConfiguration;
import com.iqser.red.storage.commons.service.StorageService;
import org.assertj.core.util.Lists;
import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;
@ -77,6 +81,17 @@ public abstract class AbstractPersistenceServerServiceTest {
public void setupOptimize() {
when(pdfTronRedactionClient.optimize(Mockito.any())).thenAnswer((args) ->
new PdfTronOptimizeResponse(((PdfTronOptimizeRequest) args.getArguments()[0]).getDocument()));
when(pdfTronRedactionClient.redact(Mockito.any())).thenAnswer((args) ->
new PdfTronRedactionResult(((PdfTronRedactionRequest) args.getArguments()[0]).getDocument()));
when(pdfTronRedactionClient.redactionPreview(Mockito.any())).thenAnswer((args) ->
new PdfTronRedactionResult(((PdfTronRedactionRequest) args.getArguments()[0]).getDocument()));
when(pdfTronRedactionClient.flatDocument(Mockito.any())).thenAnswer((args) ->
new PdfTronFlattenResponse(((PdfTronFlattenRequest) args.getArguments()[0]).getDocument()));
when(redactionClient.annotate(Mockito.any())).thenReturn(new AnnotateResponse("document".getBytes()));
when(redactionClient.sections(Mockito.any())).thenReturn(new RedactionResult());
when(redactionClient.getRedactionLog(Mockito.any())).thenReturn(new RedactionLog(1, Lists.newArrayList(),Lists.newArrayList(),0,0,0,0));
}
@Configuration
@ -90,6 +105,7 @@ public abstract class AbstractPersistenceServerServiceTest {
return new FileSystemBackedStorageService();
}
}
@After