From f36a2c3590a07aec5036bc7723307ee894b9214a Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Sun, 19 Sep 2021 22:51:46 +0300 Subject: [PATCH] type provider and test --- .../data/configuration/DictionaryEntry.java | 2 + .../v1/api/model/data/configuration/Type.java | 9 ++- .../model/data/dossier/DossierTemplate.java | 3 + .../v1/api/resources/DictionaryResource.java | 19 +++-- .../v1/api/resources/TypeResource.java | 27 ------- .../DictionaryPersistenceService.java | 19 +++-- .../repository/TypeRepository.java | 3 + .../controller/DictionaryController.java | 14 +++- .../integration/client/DictionaryClient.java | 9 +++ .../server/integration/client/TypeClient.java | 9 --- .../integration/service/TypeProvider.java | 43 ++++++++--- .../v1/server/integration/tests/TypeTest.java | 76 +++++++++++++++++++ .../AbstractPersistenceServerServiceTest.java | 28 +++++++ 13 files changed, 196 insertions(+), 65 deletions(-) delete mode 100644 persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TypeResource.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java delete mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TypeClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/DictionaryEntry.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/DictionaryEntry.java index 50a352277..16be285e6 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/DictionaryEntry.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/DictionaryEntry.java @@ -1,5 +1,6 @@ package com.iqser.red.service.persistence.service.v1.api.model.data.configuration; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import javax.persistence.*; @@ -19,6 +20,7 @@ public class DictionaryEntry { @Column private boolean deleted; + @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) private Type type; diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/Type.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/Type.java index fac967464..0aff516a4 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/Type.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/Type.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.data.configuration; +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate; import lombok.Data; @@ -16,8 +18,7 @@ import static javax.persistence.CascadeType.ALL; public class Type { @Id - private String id; // das ist jetzt UUID - // type + dossierId oder type + templateId + private String id; @Column private String type; @Column @@ -43,12 +44,16 @@ public class Type { private List entries = new ArrayList<>(); @ManyToOne + @JsonIgnore + @JoinColumn(name = "dossier_template_id") private DossierTemplate dossierTemplate; @Column(updatable = false, insertable = false, name = "dossier_template_id") private String dossierTemplateId; @ManyToOne + @JsonIgnore + @JoinColumn(name = "dossier_id") private Dossier dossier; @Column(updatable = false, insertable = false, name = "dossier_id") diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/DossierTemplate.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/DossierTemplate.java index c35008344..7f1cc17d6 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/DossierTemplate.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/DossierTemplate.java @@ -1,5 +1,6 @@ package com.iqser.red.service.persistence.service.v1.api.model.data.dossier; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type; import lombok.Data; @@ -53,8 +54,10 @@ public class DossierTemplate { private List reportTemplates = new ArrayList<>(); @OneToMany + @JsonIgnore private List dossierTypes = new ArrayList<>(); @OneToMany + @JsonIgnore private List dossiers = new ArrayList<>(); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java index 5bdc3bb2a..846946b46 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java @@ -1,6 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.resources; import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Colors; +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 org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -26,19 +27,20 @@ public interface DictionaryResource { String COLOR_PATH = "/color"; String VERSION_PATH = "/version"; + String ENTRIES_PATH = "/entries"; @ResponseStatus(HttpStatus.NO_CONTENT) - @PostMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE , consumes = MediaType.APPLICATION_JSON_VALUE) void addEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody List entries, @RequestParam(value = "removeCurrent", required = false, defaultValue = "false") boolean removeCurrent); @ResponseStatus(HttpStatus.NO_CONTENT) - @DeleteMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) + @DeleteMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE , consumes = MediaType.APPLICATION_JSON_VALUE) void deleteEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody List entries); @@ -49,13 +51,13 @@ public interface DictionaryResource { @RequestBody Type typeValue); - @ResponseStatus(HttpStatus.NO_CONTENT) - @PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) - void addType(@RequestBody Type typeValue); + @ResponseStatus(HttpStatus.CREATED) + @PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + Type addType(@RequestBody Type typeValue); @ResponseStatus(HttpStatus.NO_CONTENT) - @DeleteMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE) + @DeleteMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE ) void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String typeId); @@ -66,9 +68,12 @@ public interface DictionaryResource { List getAllTypesForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId); - @GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) + @GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE , produces = MediaType.APPLICATION_JSON_VALUE) Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId); + @GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE+ENTRIES_PATH , produces = MediaType.APPLICATION_JSON_VALUE) + List getEntriesForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId); + @GetMapping(value = VERSION_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE) long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TypeResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TypeResource.java deleted file mode 100644 index 29875e9dd..000000000 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TypeResource.java +++ /dev/null @@ -1,27 +0,0 @@ -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 getTypes(); - - @ResponseBody - @ResponseStatus(value = HttpStatus.OK) - @GetMapping(value = TYPE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) - Type getType(String typeId); - -} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index b94d2f1f8..3bebb407e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -1,12 +1,13 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; -import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; +import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -32,6 +33,8 @@ public class DictionaryPersistenceService { checkRankAlreadyExists(type, dossierTemplateId, rank, dossierId); Type t = new Type(); + t.setId(type + ":" + getTypeIdSuffix(dossierTemplateId, dossierId)); + t.setType(type); t.setDossier(dossierId == null ? null : dossierRepository.getOne(dossierId)); t.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId)); t.setHexColor(hexColor); @@ -42,13 +45,21 @@ public class DictionaryPersistenceService { t.setRecommendation(isRecommendation); t.setAddToDictionaryAction(addToDictionaryAction); t.setLabel(label); + t.setVersion(1); return typeRepository.save(t); } + private String getTypeIdSuffix(String dossierTemplateId, String dossierId) { + if (StringUtils.isBlank(dossierTemplateId) && StringUtils.isBlank(dossierId)) { + throw new BadRequestException("Either DossierId or DossierTemplateId is required"); + } + return dossierTemplateId != null ? dossierTemplateId + (dossierId != null ? ":" + dossierId : "") : dossierId; + } + @Transactional - public void updateType(String typeId, Type typeValueRequest){ + public void updateType(String typeId, Type typeValueRequest) { typeRepository.findById(typeId).ifPresent((type) -> { checkRankAlreadyExists(type.getType(), type.getDossierTemplate().getId(), typeValueRequest.getRank(), type.getDossier() == null ? null : type.getDossier().getId()); @@ -73,9 +84,6 @@ public class DictionaryPersistenceService { } - - - public List getAllTypesForDossierTemplate(String dossierTemplateId) { return typeRepository.findByDossierTemplateId(dossierTemplateId); @@ -107,6 +115,7 @@ public class DictionaryPersistenceService { } } + @Transactional public void incrementVersion(String typeId) { typeRepository.updateByIdSetIncrementVersionByOne(typeId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java index e3372358c..57da87630 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java @@ -4,8 +4,10 @@ import com.iqser.red.service.persistence.service.v1.api.model.data.configuration import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import javax.transaction.Transactional; import java.util.List; import java.util.Optional; @@ -17,6 +19,7 @@ public interface TypeRepository extends JpaRepository { List findByDossierId(String dossierId); + @Modifying @Query("update Type t set t.version = t.version +1 where t.id = :typeId") void updateByIdSetIncrementVersionByOne(String typeId); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java index b1864e30d..5b6344d9e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.transaction.Transactional; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -142,7 +143,7 @@ public class DictionaryController implements DictionaryResource { @Override - public void addType(@RequestBody Type typeRequest) { + public Type addType(@RequestBody Type typeRequest) { if (typeRequest.getDossierTemplateId() == null) { throw new BadRequestException("Dossier template id does not exist."); @@ -162,10 +163,9 @@ public class DictionaryController implements DictionaryResource { } String color = typeRequest.getHexColor(); validateColor(color); - var type = dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, typeRequest + return dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, typeRequest .getRank(), typeRequest.isHint(), typeRequest.isCaseInsensitive(), typeRequest.isRecommendation(), typeRequest .getDescription(), typeRequest.isAddToDictionaryAction(), typeRequest.getLabel(), typeRequest.getDossierId()); - dictionaryPersistenceService.incrementVersion(type.getId()); } @@ -200,10 +200,16 @@ public class DictionaryController implements DictionaryResource { } @Override - public Type getDictionaryForType(String typeId) { + public Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId) { return dictionaryPersistenceService.getType(typeId); } + @Override + @Transactional + public List getEntriesForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId) { + return dictionaryPersistenceService.getType(typeId).getEntries(); + } + private void validateEntries(List entries) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java new file mode 100644 index 000000000..386fd6807 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java @@ -0,0 +1,9 @@ +package com.iqser.red.service.peristence.v1.server.integration.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.DictionaryResource; +import com.iqser.red.service.persistence.service.v1.api.resources.UploadResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "DictionaryClient", url = "http://localhost:${server.port}") +public interface DictionaryClient extends DictionaryResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TypeClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TypeClient.java deleted file mode 100644 index 7e0037525..000000000 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TypeClient.java +++ /dev/null @@ -1,9 +0,0 @@ -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 { -} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java index afe68a17a..08b34c420 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java @@ -1,26 +1,47 @@ package com.iqser.red.service.peristence.v1.server.integration.service; +import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; +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; 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; +import static org.assertj.core.api.Assertions.assertThat; @Service public class TypeProvider { @Autowired - private TypeClient typeClient; + private DictionaryClient dictionaryClient; + + public Type testAndProvideType(DossierTemplate dossierTemplate, String typeName) { + + var type = new Type(); + type.setType(typeName); + type.setDescription("test"); + type.setAddToDictionaryAction(true); + type.setHexColor("#dddddd"); + type.setHint(false); + type.setRank(100); + type.setRecommendation(false); + type.setLabel("test"); + type.setCaseInsensitive(false); + type.setDossierTemplateId(dossierTemplate.getId()); + + + var createdType = dictionaryClient.addType(type); + + + var loadedType = dictionaryClient.getDictionaryForType(createdType.getId()); + + assertThat(loadedType).isNotNull(); + + + return loadedType; + } public Type testAndProvideType(DossierTemplate dossierTemplate) { - - var type = typeClient.getType(dossierTemplate.getDossierTypes().stream().filter(t -> t.getType()).findFirst().get()); - - - - return type; + return testAndProvideType(dossierTemplate, "test"); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java new file mode 100644 index 000000000..f388fcf2a --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java @@ -0,0 +1,76 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; +import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; +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.data.configuration.Colors; +import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry; +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +public class TypeTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private TypeProvider typeProvider; + + @Autowired + private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider; + + @Autowired + private DictionaryClient dictionaryClient; + + + @Test + public void testType() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + + var type = typeProvider.testAndProvideType(dossierTemplate); + + dictionaryClient.addEntries(type.getId(), Lists.newArrayList("aaa", "bbb", "ccc"), true); + + var loadedType = dictionaryClient.getDictionaryForType(type.getId()); + + assertThat(loadedType.getVersion()).isGreaterThan(type.getVersion()); + + List dict = dictionaryClient.getEntriesForType(type.getId()); + + assertThat(dict.size()).isEqualTo(3); + + dictionaryClient.deleteEntries(type.getId(), Lists.newArrayList("aaa", "bbb", "ccc")); + + loadedType = dictionaryClient.getDictionaryForType(type.getId()); + + assertThat(loadedType.getVersion()).isGreaterThan(type.getVersion() + 1); + + + } + + @Test + public void testColors() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + + var colors = new Colors(); + colors.setAnalysisColor("#dddddd"); + colors.setDefaultColor("#dddddd"); + colors.setDictionaryRequestColor("#dddddd"); + colors.setPreviewColor("#dddddd"); + colors.setManualRedactionColor("#dddddd"); + colors.setNotRedacted("#dddddd"); + colors.setRequestAdd("#dddddd"); + colors.setRequestRemove("#dddddd"); + colors.setUpdatedColor("#dddddd"); + + colors.setDossierTemplateId(dossierTemplate.getId()); + + dictionaryClient.setColors(dossierTemplate.getId(), colors); + + var savedColors = dictionaryClient.getColors(dossierTemplate.getId()); + assertThat(savedColors).isEqualTo(colors); + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index f75e8a4fa..488fcb9ff 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -115,14 +115,42 @@ public abstract class AbstractPersistenceServerServiceTest { @Autowired private AuditRepository auditRepository; + @Autowired + private TypeRepository typeRepository; + + @Autowired + private ManualRedactionRepository manualRedactionRepository; + + @Autowired + private ForceRedactionRepository forceRedactionRepository; + + @Autowired + private RemoveRedactionRepository removeRedactionRepository; + + @Autowired + private LegalBasisChangeRepository legalBasisChangeRepository; + + @Autowired + private ImageRecategorizationRepository imageRecategorizationRepository; + + @Autowired + private LegalBasisMappingRepository legalBasisMappingRepository; + @After public void afterTests() { + typeRepository.deleteAll(); viewedPagesRepository.deleteAll(); fileRepository.deleteAll(); dossierRepository.deleteAll(); dossierTemplateRepository.deleteAll(); notificationRepository.deleteAll(); auditRepository.deleteAll(); + manualRedactionRepository.deleteAll(); + forceRedactionRepository.deleteAll(); + removeRedactionRepository.deleteAll(); + legalBasisChangeRepository.deleteAll(); + imageRecategorizationRepository.deleteAll(); + legalBasisMappingRepository.deleteAll();; } }