Merge branch 'RED-9588' into 'master'
RED-9588 - No "You have been unassigned..." Notification after setting file status to back to new Closes RED-9588 See merge request redactmanager/persistence-service!577
This commit is contained in:
commit
b8710d57b3
@ -397,8 +397,10 @@ public class StatusController implements StatusResource {
|
|||||||
|
|
||||||
private void generatePossibleUnassignedFromFileNotification(String dossierId, String fileId, FileModel oldFileStatus, String newAssigneeId) {
|
private void generatePossibleUnassignedFromFileNotification(String dossierId, String fileId, FileModel oldFileStatus, String newAssigneeId) {
|
||||||
|
|
||||||
if (oldFileStatus.getAssignee() == null || newAssigneeId == null || oldFileStatus.getAssignee().equals(newAssigneeId) || KeycloakSecurity.getUserId()
|
if (oldFileStatus.getAssignee() == null
|
||||||
.equals(oldFileStatus.getAssignee())) {
|
|| newAssigneeId == null && oldFileStatus.getAssignee() == null
|
||||||
|
|| oldFileStatus.getAssignee().equals(newAssigneeId)
|
||||||
|
|| KeycloakSecurity.getUserId().equals(oldFileStatus.getAssignee())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
|
|||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import static org.mockito.Mockito.any;
|
import static org.mockito.Mockito.any;
|
||||||
import static org.mockito.Mockito.anyString;
|
import static org.mockito.Mockito.anyString;
|
||||||
|
import static org.mockito.Mockito.times;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
@ -25,8 +27,12 @@ import java.util.Set;
|
|||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Captor;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.mock.web.MockMultipartFile;
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
|
|
||||||
@ -58,7 +64,9 @@ import com.iqser.red.service.persistence.management.v1.processor.service.job.Del
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.service.job.DocumentDataFilesConversionJob;
|
import com.iqser.red.service.persistence.management.v1.processor.service.job.DocumentDataFilesConversionJob;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.job.SoftDeletedFilesCleanupJob;
|
import com.iqser.red.service.persistence.management.v1.processor.service.job.SoftDeletedFilesCleanupJob;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
|
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributesConfig;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributesConfig;
|
||||||
@ -72,6 +80,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog
|
|||||||
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.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.EntryType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationComments;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationComments;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive;
|
||||||
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.Dossier;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeConfig;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeConfig;
|
||||||
@ -86,6 +95,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.Forc
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.LegalBasisChangeRequestModel;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.LegalBasisChangeRequestModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RecategorizationRequestModel;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RecategorizationRequestModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RemoveRedactionRequestModel;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RemoveRedactionRequestModel;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType;
|
||||||
import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto;
|
import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPageProto;
|
||||||
import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto;
|
import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPositionDataProto;
|
||||||
import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureProto;
|
import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructureProto;
|
||||||
@ -160,6 +170,10 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DocumentDataFilesConversionJob documentDataFilesConversionJob;
|
private DocumentDataFilesConversionJob documentDataFilesConversionJob;
|
||||||
|
@MockBean
|
||||||
|
private NotificationPersistenceService notificationPersistenceService;
|
||||||
|
@Captor
|
||||||
|
private ArgumentCaptor<AddNotificationRequest> captor;
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -1187,4 +1201,43 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
|||||||
DocumentPositionDataProto.AllDocumentPositionData allDocumentPositionData = DocumentPositionDataProto.AllDocumentPositionData.parseFrom(documentPositionBytes);
|
DocumentPositionDataProto.AllDocumentPositionData allDocumentPositionData = DocumentPositionDataProto.AllDocumentPositionData.parseFrom(documentPositionBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserNotificationsWhenUnAssigned() { //RED-9588
|
||||||
|
|
||||||
|
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||||
|
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||||
|
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||||
|
var file2 = fileTesterAndProvider.testAndProvideFile(dossier, "file2");
|
||||||
|
|
||||||
|
var currentUserId = userProvider.getUserId();
|
||||||
|
var user1 = userProvider.getAltUserId();
|
||||||
|
var user2 = userProvider.getMemberUserId();
|
||||||
|
assertThat(currentUserId).isNotEqualTo(user1);
|
||||||
|
assertThat(currentUserId).isNotEqualTo(user2);
|
||||||
|
assertThat(user1).isNotEqualTo(user2);
|
||||||
|
|
||||||
|
DossierRequest cru = new DossierRequest();
|
||||||
|
cru.setDossierTemplateId(dossierTemplate.getId());
|
||||||
|
BeanUtils.copyProperties(dossier, cru);
|
||||||
|
cru.getMemberIds().add(user1);
|
||||||
|
cru.getMemberIds().add(user2);
|
||||||
|
dossierClient.createDossierOrUpdateDossier(cru);
|
||||||
|
|
||||||
|
fileClient.setStatusUnderReviewForList(dossier.getId(), List.of(file.getId(), file2.getId()), user1);
|
||||||
|
var fileStatus1 = fileClient.getFileStatus(dossier.getId(), file.getId());
|
||||||
|
assertEquals(WorkflowStatus.UNDER_REVIEW, fileStatus1.getWorkflowStatus());
|
||||||
|
assertEquals(user1, fileStatus1.getAssignee());
|
||||||
|
|
||||||
|
fileClient.setStatusNewForList(dossier.getId(), List.of(file.getId(), file2.getId()));
|
||||||
|
fileStatus1 = fileClient.getFileStatus(dossier.getId(), file.getId());
|
||||||
|
assertEquals(WorkflowStatus.NEW, fileStatus1.getWorkflowStatus());
|
||||||
|
assertNull(fileStatus1.getAssignee());
|
||||||
|
|
||||||
|
verify(notificationPersistenceService, times(5)).insertNotification(captor.capture());
|
||||||
|
|
||||||
|
Assertions.assertEquals(captor.getValue().getUserId(), user1);
|
||||||
|
Assertions.assertEquals(captor.getValue().getNotificationType(), NotificationType.UNASSIGNED_FROM_FILE.name());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user