RED-9140 - Fixed and more tests

This commit is contained in:
Andrei Isvoran 2024-06-18 16:22:42 +03:00
parent 4a9297cfd7
commit 3dc11886ff
2 changed files with 54 additions and 9 deletions

View File

@ -449,14 +449,14 @@ public class EntityLogMergeService {
if (!Strings.isNullOrEmpty(recategorization.getLegalBasis())) {
boolean isHint = isHint(entityLogEntry.getType(), dossier);
entityLogEntry.setLegalBasis(recategorization.getLegalBasis());
entityLogEntry.setState(isHint ? EntryState.SKIPPED : EntryState.APPLIED);
ChangeFactory.addPropertyChanges(change,
PropertyChange.builder()
.property("legalBasis")
.oldValue(entityLogEntry.getLegalBasis())
.newValue(recategorization.getLegalBasis())
.build());
entityLogEntry.setLegalBasis(recategorization.getLegalBasis());
entityLogEntry.setState(isHint ? EntryState.SKIPPED : EntryState.APPLIED);
}
ChangeFactory.addPropertyChanges(change, PropertyChange.builder().property("state").oldValue(entryState.name()).newValue(entityLogEntry.getState().name()).build());

View File

@ -52,6 +52,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel;
@ -117,10 +118,11 @@ public class EntityLogMergeTest {
String entryToResizeId = UUID.randomUUID().toString();
String entryLegalBasisId = UUID.randomUUID().toString();
String forceRedactionId = UUID.randomUUID().toString();
String entryToRecategorizeId = UUID.randomUUID().toString();
ManualRedactions manualRedactions = provideManualRedactions(entryToAddId, entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, fileId, rectangleToAddId);
ManualRedactions manualRedactions = provideManualRedactions(entryToAddId, entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, fileId, rectangleToAddId, entryToRecategorizeId);
var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, false);
var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, entryToRecategorizeId, false);
when(manualRedactionProviderService.getManualRedactions(any(), any())).thenReturn(manualRedactions);
when(fileStatusService.getStatus(fileId)).thenReturn(FileModel.builder().excluded(false).dossierStatusId(dossierTemplateId).id(fileId).build());
@ -186,6 +188,8 @@ public class EntityLogMergeTest {
.get(0).getManualRedactionType(), ManualRedactionType.RESIZE);
assertEquals(resizeEntryLogEntry.getChanges()
.get(0).getType(), ChangeType.RESIZED);
assertEquals(resizeEntryLogEntry.getChanges().get(0).getPropertyChanges().get("value"), "Darth Vader -> Random");
assertEquals(resizeEntryLogEntry.getChanges().get(0).getPropertyChanges().get("positions"), "[1.0, 1.0, 1.0, 1.0, 1] -> [2.0, 2.0, 2.0, 2.0, 1]");
assertTrue(resizeEntryLogEntry.getEngines().contains(Engine.MANUAL));
var optionalLegalBasisEntryLogEntry = response.getEntityLogEntry()
@ -201,6 +205,7 @@ public class EntityLogMergeTest {
.get(0).getManualRedactionType(), ManualRedactionType.LEGAL_BASIS_CHANGE);
assertEquals(legalBasisEntryLogEntry.getChanges()
.get(0).getType(), ChangeType.LEGAL_BASIS_CHANGE);
assertEquals(legalBasisEntryLogEntry.getChanges().get(0).getPropertyChanges().get("legalBasis"), "legalBasis -> New legal basis");
assertTrue(legalBasisEntryLogEntry.getEngines().contains(Engine.MANUAL));
var optionalForceRedactionEntryLogEntry = response.getEntityLogEntry()
@ -216,6 +221,8 @@ public class EntityLogMergeTest {
.get(0).getManualRedactionType(), ManualRedactionType.FORCE);
assertEquals(forceRedactionEntryLogEntry.getChanges()
.get(0).getType(), ChangeType.FORCE_REDACT);
assertEquals(forceRedactionEntryLogEntry.getChanges().get(0).getPropertyChanges().get("legalBasis"), "null -> Force");
assertEquals(forceRedactionEntryLogEntry.getChanges().get(0).getPropertyChanges().get("state"), "SKIPPED -> APPLIED");
assertTrue(forceRedactionEntryLogEntry.getEngines().contains(Engine.MANUAL));
var optionalRectangleEntryLogEntry = response.getEntityLogEntry()
@ -233,6 +240,22 @@ public class EntityLogMergeTest {
.get(0).getManualRedactionType(), ManualRedactionType.ADD);
assertTrue(rectangleEntryLogEntry.getEngines().contains(Engine.MANUAL));
var optionalRecategorizationEntryLogEntry = response.getEntityLogEntry()
.stream()
.filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryToRecategorizeId))
.findFirst();
var recategorizationEntryLogEntry = optionalRecategorizationEntryLogEntry.get();
assertEquals(recategorizationEntryLogEntry.getLegalBasis(), "New legal basis");
assertEquals(recategorizationEntryLogEntry.getEntryType(), EntryType.ENTITY);
assertEquals(recategorizationEntryLogEntry.getType(), "PII");
assertEquals(recategorizationEntryLogEntry.getState(), EntryState.APPLIED);
assertEquals(recategorizationEntryLogEntry.getManualChanges()
.get(0).getManualRedactionType(), ManualRedactionType.RECATEGORIZE);
assertEquals(recategorizationEntryLogEntry.getChanges()
.get(0).getType(), ChangeType.RECATEGORIZE);
assertEquals(recategorizationEntryLogEntry.getChanges().get(0).getPropertyChanges().get("legalBasis"), "legalBasis -> New legal basis");
assertEquals(recategorizationEntryLogEntry.getChanges().get(0).getPropertyChanges().get("type"), "CBI_author -> PII");
assertTrue(recategorizationEntryLogEntry.getEngines().contains(Engine.MANUAL));
}
@ -248,6 +271,7 @@ public class EntityLogMergeTest {
String entryToResizeId = UUID.randomUUID().toString();
String entryLegalBasisId = UUID.randomUUID().toString();
String forceRedactionId = UUID.randomUUID().toString();
String entryToRecategorizeId = UUID.randomUUID().toString();
ManualRedactions manualRedactions = provideManualRedactions(entryLegalBasisId,
entryToRemoveId,
@ -255,9 +279,9 @@ public class EntityLogMergeTest {
entryLegalBasisId,
forceRedactionId,
fileId,
rectangleToAddId);
rectangleToAddId, entryToRecategorizeId);
var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, true);
var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, entryToRecategorizeId, true);
when(manualRedactionProviderService.getManualRedactions(any(), any())).thenReturn(manualRedactions);
when(fileStatusService.getStatus(fileId)).thenReturn(FileModel.builder().excluded(false).dossierStatusId(dossierTemplateId).id(fileId).build());
@ -307,6 +331,7 @@ public class EntityLogMergeTest {
String entryToResizeId = UUID.randomUUID().toString();
String entryLegalBasisId = UUID.randomUUID().toString();
String forceRedactionId = UUID.randomUUID().toString();
String entryToRecategorizeId = UUID.randomUUID().toString();
ManualRedactions manualRedactions = new ManualRedactions();
List<Rectangle> positions = new ArrayList<>();
@ -322,7 +347,7 @@ public class EntityLogMergeTest {
.fileId("file")
.build()));
var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, false);
var entityLog = provideEntityLog(entryToRemoveId, entryToResizeId, entryLegalBasisId, forceRedactionId, entryToRecategorizeId, false);
when(manualRedactionProviderService.getManualRedactions(any(), any())).thenReturn(manualRedactions);
when(fileStatusService.getStatus(fileId)).thenReturn(FileModel.builder().excluded(false).dossierStatusId(dossierTemplateId).id(fileId).build());
@ -347,7 +372,7 @@ public class EntityLogMergeTest {
}
private EntityLog provideEntityLog(String entryToRemoveId, String entryToResizeId, String entryLegalBasisId, String forceRedactionId, boolean dictEntry) {
private EntityLog provideEntityLog(String entryToRemoveId, String entryToResizeId, String entryLegalBasisId, String forceRedactionId, String entryToRecategorizeId, boolean dictEntry) {
List<Position> positions = new ArrayList<>();
positions.add(new Position(1, 1, 1, 1, 1));
@ -378,15 +403,27 @@ public class EntityLogMergeTest {
.state(EntryState.APPLIED)
.dictionaryEntry(dictEntry)
.positions(positions)
.legalBasis("legalBasis")
.build(),
EntityLogEntry.builder()
.id(forceRedactionId)
.type("manual")
.value("Darth Luke")
.entryType(EntryType.ENTITY)
.state(EntryState.SKIPPED)
.dictionaryEntry(dictEntry)
.positions(positions)
.build(),
EntityLogEntry.builder()
.id(entryToRecategorizeId)
.type("manual")
.value("Darth Luke")
.entryType(EntryType.ENTITY)
.state(EntryState.APPLIED)
.dictionaryEntry(dictEntry)
.positions(positions)
.legalBasis("legalBasis")
.type("CBI_author")
.build()),
Collections.emptyList(),
0,
@ -402,7 +439,7 @@ public class EntityLogMergeTest {
String entryLegalBasisId,
String forceRedactionId,
String fileId,
String rectangleToAddId) {
String rectangleToAddId, String entryToRecategorizeId) {
List<Rectangle> positions = new ArrayList<>();
positions.add(new Rectangle(2, 2, 2, 2, 1));
@ -465,6 +502,14 @@ public class EntityLogMergeTest {
.user("User")
.fileId("file")
.build()))
.recategorizations(Set.of(ManualRecategorization.builder()
.annotationId(entryToRecategorizeId)
.fileId(fileId)
.legalBasis("New legal basis")
.requestDate(OffsetDateTime.now())
.user("User")
.type("PII")
.build()))
.build();
}