RED-8480: small fixes and tests
This commit is contained in:
parent
dcb5c0e03e
commit
1d47744b30
@ -411,8 +411,6 @@ public class EntityLogMergeService {
|
||||
|
||||
entityLogEntry.setEntryType(getEntryType(isHint, recategorization.getType()));
|
||||
|
||||
entityLogEntry.setState(isHint ? EntryState.SKIPPED : EntryState.APPLIED); // TODO: only set applied if legalBasis is set by recategorization
|
||||
|
||||
entityLogEntry.getEngines().add(Engine.MANUAL);
|
||||
|
||||
if (!Strings.isNullOrEmpty(recategorization.getLegalBasis())) {
|
||||
|
||||
@ -12,6 +12,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@ -44,14 +45,20 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.redactionlog.RedactionRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeResult;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.Dictionary;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.MessageType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Change;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ChangeType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogLegalBasis;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddRedactionRequestModel;
|
||||
@ -2135,14 +2142,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.legalBasis("legal basis")
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
null,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
var entityLog = new EntityLog(1, 1, List.of(entityLogEntry), null, 0, 0, 0, 0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
@ -2160,7 +2160,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
assertEquals(allManualRedactions.getRecategorizations().size(), 1);
|
||||
assertEquals(allManualRedactions.getEntriesToAdd().size(), 1);
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd().stream().findFirst().get();
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd()
|
||||
.stream()
|
||||
.findFirst()
|
||||
.get();
|
||||
assertFalse(entryToAdd.isAddToDictionary());
|
||||
assertFalse(entryToAdd.isAddToDossierDictionary());
|
||||
assertEquals(entryToAdd.getValue(), entityLogEntry.getValue());
|
||||
@ -2187,14 +2190,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.legalBasis("legal basis")
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
null,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
var entityLog = new EntityLog(1, 1, List.of(entityLogEntry), null, 0, 0, 0, 0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
@ -2210,7 +2206,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
assertEquals(allManualRedactions.getLegalBasisChanges().size(), 1);
|
||||
assertEquals(allManualRedactions.getEntriesToAdd().size(), 1);
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd().stream().findFirst().get();
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd()
|
||||
.stream()
|
||||
.findFirst()
|
||||
.get();
|
||||
assertFalse(entryToAdd.isAddToDictionary());
|
||||
assertFalse(entryToAdd.isAddToDossierDictionary());
|
||||
assertEquals(entryToAdd.getValue(), entityLogEntry.getValue());
|
||||
@ -2237,14 +2236,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.legalBasis("legal basis")
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
null,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
var entityLog = new EntityLog(1, 1, List.of(entityLogEntry), null, 0, 0, 0, 0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
@ -2262,7 +2254,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
assertEquals(allManualRedactions.getResizeRedactions().size(), 1);
|
||||
assertEquals(allManualRedactions.getEntriesToAdd().size(), 1);
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd().stream().findFirst().get();
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd()
|
||||
.stream()
|
||||
.findFirst()
|
||||
.get();
|
||||
assertFalse(entryToAdd.isAddToDictionary());
|
||||
assertFalse(entryToAdd.isAddToDossierDictionary());
|
||||
assertEquals(entryToAdd.getValue(), entityLogEntry.getValue());
|
||||
@ -2288,20 +2283,11 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.legalBasis("legal basis")
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
null,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
var entityLog = new EntityLog(1, 1, List.of(entityLogEntry), null, 0, 0, 0, 0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
var forceRedactionRequestModel = ForceRedactionRequestModel.builder()
|
||||
.annotationId("annotationId")
|
||||
.build();
|
||||
var forceRedactionRequestModel = ForceRedactionRequestModel.builder().annotationId("annotationId").build();
|
||||
|
||||
manualRedactionClient.forceRedactionBulk(dossier.getId(), file.getId(), Set.of(forceRedactionRequestModel));
|
||||
|
||||
@ -2309,7 +2295,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
assertEquals(allManualRedactions.getForceRedactions().size(), 1);
|
||||
assertEquals(allManualRedactions.getEntriesToAdd().size(), 1);
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd().stream().findFirst().get();
|
||||
var entryToAdd = allManualRedactions.getEntriesToAdd()
|
||||
.stream()
|
||||
.findFirst()
|
||||
.get();
|
||||
assertFalse(entryToAdd.isAddToDictionary());
|
||||
assertFalse(entryToAdd.isAddToDossierDictionary());
|
||||
assertEquals(entryToAdd.getValue(), entityLogEntry.getValue());
|
||||
@ -2335,14 +2324,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.legalBasis("legal basis")
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
null,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
var entityLog = new EntityLog(1, 1, List.of(entityLogEntry), null, 0, 0, 0, 0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
@ -2355,7 +2337,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.sourceId("sourceId")
|
||||
.build();
|
||||
|
||||
String errorMessage = assertThrows(FeignException.BadRequest.class, () -> manualRedactionClient.addRedactionBulk(dossier.getId(), file.getId(), Set.of(addRedactionRequest))).getMessage();
|
||||
String errorMessage = assertThrows(FeignException.BadRequest.class,
|
||||
() -> manualRedactionClient.addRedactionBulk(dossier.getId(), file.getId(), Set.of(addRedactionRequest))).getMessage();
|
||||
assertTrue(errorMessage.contains("Redaction value can not exceed 4000 characters"));
|
||||
}
|
||||
|
||||
@ -2385,4 +2368,135 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testRecategorizeImageToLogo() {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||
|
||||
var typeImage = typeProvider.testAndProvideType(dossierTemplate, null, "image", false, 999);
|
||||
var typeLogo = typeProvider.testAndProvideType(dossierTemplate, null, "logo", false, 1001);
|
||||
|
||||
var entityLogEntry = EntityLogEntry.builder()
|
||||
.id("annotationId")
|
||||
.type(typeImage.getType())
|
||||
.entryType(EntryType.IMAGE_HINT)
|
||||
.state(EntryState.SKIPPED)
|
||||
.value("Image:Other")
|
||||
.reason("")
|
||||
.matchedRule("")
|
||||
.legalBasis("")
|
||||
.imported(false)
|
||||
.containingNodeId(List.of(31, 12))
|
||||
.closestHeadline("Images: Regular ")
|
||||
.section("[31]: Section: Images: Regular Images: Formular")
|
||||
.color(null)
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.textBefore(null)
|
||||
.textAfter(null)
|
||||
.startOffset(0)
|
||||
.endOffset(0)
|
||||
.imageHasTransparency(false)
|
||||
.dictionaryEntry(false)
|
||||
.dossierDictionaryEntry(false)
|
||||
.excluded(false)
|
||||
.changes(List.of(new Change(1, ChangeType.ADDED, OffsetDateTime.now())))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
List.of(new EntityLogLegalBasis("1.1 personal data (incl. geolocation); Article 39(e)(3)",
|
||||
"desc",
|
||||
"Article 39(e)(3) of Regulation (EC) No 178/2002"),
|
||||
new EntityLogLegalBasis("4. commercial information",
|
||||
"desc 2",
|
||||
"Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)")),
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
var recategorizationRequestModel = RecategorizationRequestModel.builder()
|
||||
.annotationId("annotationId")
|
||||
.legalBasis("")
|
||||
.section("[31]: Section: Images: Regular Images: Formular")
|
||||
.type(typeLogo.getType())
|
||||
.value("Image:Other")
|
||||
.build();
|
||||
|
||||
var resp = manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(recategorizationRequestModel), false);
|
||||
|
||||
System.out.println(resp);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testLegalBasisChangeCbiAuthor() {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||
|
||||
var type = typeProvider.testAndProvideType(dossierTemplate, null, "CBI_author", false);
|
||||
|
||||
var entityLogEntry = EntityLogEntry.builder()
|
||||
.id("annotationId")
|
||||
.type(type.getType())
|
||||
.entryType(EntryType.ENTITY)
|
||||
.state(EntryState.APPLIED)
|
||||
.value("Ranya Eikenboom")
|
||||
.reason("Author found")
|
||||
.matchedRule("CBI.0.0")
|
||||
.legalBasis("Article 39(e)(3) of Regulation (EC) No 178/2002")
|
||||
.imported(false)
|
||||
.containingNodeId(List.of(1, 1, 1))
|
||||
.closestHeadline("CBI.0.0/1: Redact CBI Authors ")
|
||||
.section("[1, 1, 1]: Paragraph: David Ksenia Max Mustermann")
|
||||
.color(null)
|
||||
.positions(List.of(new Position(1, 1, 1, 1, 1)))
|
||||
.textBefore("Ksenia Max Mustermann ")
|
||||
.textAfter(" Charalampos Schenk")
|
||||
.startOffset(197)
|
||||
.endOffset(212)
|
||||
.imageHasTransparency(false)
|
||||
.dictionaryEntry(true)
|
||||
.dossierDictionaryEntry(false)
|
||||
.excluded(false)
|
||||
.changes(List.of(new Change(1, ChangeType.ADDED, OffsetDateTime.now())))
|
||||
.engines(Set.of(Engine.DICTIONARY))
|
||||
.build();
|
||||
var entityLog = new EntityLog(1,
|
||||
1,
|
||||
List.of(entityLogEntry),
|
||||
List.of(new EntityLogLegalBasis("1.1 personal data (incl. geolocation); Article 39(e)(3)",
|
||||
"desc",
|
||||
"Article 39(e)(3) of Regulation (EC) No 178/2002"),
|
||||
new EntityLogLegalBasis("4. commercial information",
|
||||
"desc 2",
|
||||
"Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)")),
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.ENTITY_LOG, entityLog);
|
||||
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
var recategorizationRequestModel = RecategorizationRequestModel.builder()
|
||||
.annotationId("annotationId")
|
||||
.legalBasis("Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)")
|
||||
.section("[1, 1, 1]: Paragraph: David Ksenia Max Mustermann")
|
||||
.type(type.getType())
|
||||
.value("Ranya Eikenboom")
|
||||
.build();
|
||||
|
||||
var resp = manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(recategorizationRequestModel), false);
|
||||
|
||||
System.out.println(resp);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ public enum ManualRedactionType {
|
||||
FORCE,
|
||||
RECATEGORIZE,
|
||||
RECATEGORIZE_IN_DICTIONARY,
|
||||
@Deprecated LEGAL_BASIS_CHANGE,
|
||||
LEGAL_BASIS_CHANGE,
|
||||
RESIZE,
|
||||
RESIZE_IN_DICTIONARY
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user