RED-9094 - Redaction skipped after changing only type + paragraph #478

Merged
corina.olariu.ext1 merged 1 commits from RED-9094 into master 2024-05-07 15:25:28 +02:00
2 changed files with 61 additions and 1 deletions

View File

@ -390,7 +390,7 @@ public class EntityLogMergeService {
boolean isHint = isHint(recategorization.getType(), dossier);
entityLogEntry.setType(recategorization.getType());
entityLogEntry.setEntryType(getEntryType(isHint, recategorization.getType()));
entityLogEntry.setState(EntryState.SKIPPED);
entityLogEntry.setState(isHint ? EntryState.SKIPPED : EntryState.APPLIED);
}
if (!Strings.isNullOrEmpty(recategorization.getLegalBasis())) {

View File

@ -2782,4 +2782,64 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
.get(0).getProcessedDate());
}
@Test
public void testLocalRecategorizeADictBasedRedactionWithAnalysisStopped() { //RED-9094
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
var file = fileTesterAndProvider.testAndProvideFile(dossier);
var type = typeProvider.testAndProvideType(dossierTemplate, "test", 100);
var type2 = typeProvider.testAndProvideType(dossierTemplate, "test2", 101);
dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY);
var entityLog = new EntityLog(1,
1,
List.of(EntityLogEntry.builder()
.id("AnnotationId")
.type("test")
.value("Luke Skywalker")
.entryType(EntryType.ENTITY)
.state(EntryState.APPLIED)
.dictionaryEntry(true)
.section("section")
.legalBasis("Article legal basis")
.build()),
null,
0,
0,
0,
0);
fileManagementStorageService.saveEntityLog(dossier.getId(), file.getId(), entityLog);
when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog);
fileStatusPersistenceService.toggleAutomaticAnalysis(file.getFileId(), true);
var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isEqualTo(true);
ManualAddResponse response = manualRedactionClient.recategorizeBulk(dossier.getId(),
file.getId(),
Set.of(RecategorizationRequestModel.builder()
.type(type2.getType())
.annotationId("AnnotationId")
.addToDictionary(false)
.addToAllDossiers(false)
.legalBasis("Article legal basis")
.section("section")
.value("Luke Skywalker")
.build()),
false)
.get(0);
assertEquals(response.getEntityLogEntry().getId(), "AnnotationId");
assertEquals(response.getEntityLogEntry().getType(), type2.getType());
assertEquals(response.getEntityLogEntry().getManualChanges()
.get(0).getManualRedactionType(), ManualRedactionType.RECATEGORIZE);
assertEquals(response.getEntityLogEntry().getManualChanges()
.get(0).getPropertyChanges()
.get("type"), type2.getType());
assertNull(response.getEntityLogEntry().getManualChanges()
.get(0).getProcessedDate());
}
}