Tests for Manual Redaction

This commit is contained in:
aoezyetimoglu 2021-09-18 14:26:26 +02:00
parent a588963e0b
commit cd5fac1489
5 changed files with 104 additions and 4 deletions

View File

@ -29,4 +29,6 @@ public class AddRedactionRequest {
private List<Rectangle> positions = new ArrayList<>();
private String comment;
//TODO: forceAddToDictionary flag?
}

View File

@ -0,0 +1,27 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
public interface TypeResource {
String TYPE_PATH = "/type";
@ResponseBody
@ResponseStatus(value = HttpStatus.OK)
@GetMapping(value = TYPE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
List<Type> getTypes();
@ResponseBody
@ResponseStatus(value = HttpStatus.OK)
@GetMapping(value = TYPE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
Type getType(String typeId);
}

View File

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

View File

@ -0,0 +1,27 @@
package com.iqser.red.service.peristence.v1.server.integration.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.iqser.red.service.peristence.v1.server.integration.client.TypeClient;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
@Service
public class TypeProvider {
@Autowired
private TypeClient typeClient;
public Type testAndProvideType(DossierTemplate dossierTemplate) {
var type = typeClient.getType(dossierTemplate.getDossierTypes().stream().filter(t -> t.getType()).findFirst().get());
return type;
}
}

View File

@ -1,14 +1,23 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.iqser.red.service.peristence.v1.server.integration.client.ManualRedactionClient;
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.service.TypeProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.AddRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.CommentRequest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
import com.iqser.red.service.persistence.service.v1.api.model.ForceRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.ImageRecategorizationRequest;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.LegalBasisChangeRequest;
import com.iqser.red.service.persistence.service.v1.api.model.RemoveRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
@ -18,6 +27,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierTesterAndProvider dossierTesterAndProvider;
@Autowired
private TypeProvider typeProvider;
@Autowired
private ManualRedactionClient manualRedactionClient;
@ -29,9 +40,33 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
var file = fileTesterAndProvider.testAndProvideFile(dossier);
var type = typeProvider.testAndProvideType(dossier.getDossierTemplate());
var comment = manualRedactionClient.addComment(dossier.getId(), file.getId(), "1", CommentRequest.builder().text("test").user("1").build());
var loadedComment = manualRedactionClient.getComment(comment.getId());
assertThat(loadedComment.getText()).isEqualTo("test");
var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), AddRedactionRequest.builder().addToDictionary(true).addToDossierDictionary(false).status(AnnotationStatus.REQUESTED).type("manual").user("user").reason("1").value("1").legalBasis("1").build());
var loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId());
assertThat(loadedAddRedaction.getUser()).isEqualTo("user");
assertThat(loadedAddRedaction.getTypeId()).isEqualTo("manual");
var removeRedaction = manualRedactionClient.addRemoveRedaction(dossier.getId(), file.getId(), RemoveRedactionRequest.builder().annotationId(addRedaction.getAnnotationId()).comment("commi").removeFromDictionary(false).build());
manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), removeRedaction.getAnnotationId(), JSONPrimitive.of(AnnotationStatus.REQUESTED));
var loadedRemoveRedaction = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction.getAnnotationId());
assertThat(loadedRemoveRedaction.isRemoveFromDictionary()).isEqualTo(false);
assertThat(loadedRemoveRedaction.getSoftDeletedTime()).isNotEqualTo(null);
var forceRedaction = manualRedactionClient.addForceRedaction(dossier.getId(), file.getId(), ForceRedactionRequest.builder().annotationId(addRedaction.getAnnotationId()).comment("commi").legalBasis("1").build());
var loadedForceRedaction = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction.getAnnotationId());
assertThat(loadedForceRedaction.getLegalBasis()).isEqualTo("1");
var legalBasisChange = manualRedactionClient.addLegalBasisChange(dossier.getId(), file.getId(), new LegalBasisChangeRequest()); //TODO: fill
var loadedLegalBasisChange = manualRedactionClient.getLegalBasisChange(file.getId(), addRedaction.getAnnotationId());
assertThat(loadedLegalBasisChange.getId()).isEqualTo(legalBasisChange.getAnnotationId());
var imageRecategorization = manualRedactionClient.addImageRecategorization(dossier.getId(), file.getId(), ImageRecategorizationRequest.builder().build());//TODO: fill
}
}