Merge branch 'RED-9499' into 'master'
RED-9499: increased id size of entity fo fit typeId length of a created entity Closes RED-9499 See merge request redactmanager/persistence-service!576
This commit is contained in:
commit
62852d48df
@ -178,6 +178,8 @@ public class ExternalControllerAdviceV2 {
|
||||
String message = Objects.requireNonNull(exception.getRootCause()).getMessage();
|
||||
if (message.contains("uq_component_definition_technical_name_template")) {
|
||||
message = "A component with the same technical name already exists in the given dossier template.";
|
||||
} else if (message.contains("value too long for type character varying")) {
|
||||
message = "Value is too long. Please use a shorter value.";
|
||||
} else {
|
||||
message = "Database error occurred.";
|
||||
}
|
||||
|
||||
@ -212,4 +212,6 @@ databaseChangeLog:
|
||||
- include:
|
||||
file: db/changelog/tenant/129-add-component-table.yaml
|
||||
- include:
|
||||
file: db/changelog/tenant/130-add-primary-key-constraint-download-status-reports.yaml
|
||||
file: db/changelog/tenant/130-add-primary-key-constraint-download-status-reports.yaml
|
||||
- include:
|
||||
file: db/changelog/tenant/131-changed-max-size-for-id-in-entity.yaml
|
||||
@ -0,0 +1,9 @@
|
||||
databaseChangeLog:
|
||||
- changeSet:
|
||||
id: changed-max-size-for-id-in-entity
|
||||
author: ali
|
||||
changes:
|
||||
- modifyDataType:
|
||||
columnName: id
|
||||
newDataType: VARCHAR(512)
|
||||
tableName: entity
|
||||
@ -1,25 +1,36 @@
|
||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.assertj.core.util.Lists;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
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.DossierTesterAndProvider;
|
||||
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.management.v1.processor.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.UpdateTypeValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.Colors;
|
||||
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.dossiertemplate.type.Type;
|
||||
|
||||
import feign.FeignException;
|
||||
|
||||
public class TypeTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
@ -133,7 +144,9 @@ public class TypeTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true);
|
||||
assertEquals(types.getTypes().size(), 2);
|
||||
assertTrue(types.getTypes().stream().allMatch(typeValue -> typeValue.getSoftDeletedTime() == null));
|
||||
assertTrue(types.getTypes()
|
||||
.stream()
|
||||
.allMatch(typeValue -> typeValue.getSoftDeletedTime() == null));
|
||||
|
||||
dictionaryClient.deleteType(type2.getType(), dossierTemplate.getId());
|
||||
types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true);
|
||||
@ -144,10 +157,44 @@ public class TypeTest extends AbstractPersistenceServerServiceTest {
|
||||
.findFirst()
|
||||
.get().getSoftDeletedTime());
|
||||
assertNotNull(types.getTypes()
|
||||
.stream()
|
||||
.filter(t -> t.getType().equals(type2.getType()))
|
||||
.findFirst()
|
||||
.get().getSoftDeletedTime());
|
||||
.stream()
|
||||
.filter(t -> t.getType().equals(type2.getType()))
|
||||
.findFirst()
|
||||
.get().getSoftDeletedTime());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testAddTypeWithLongName() {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
|
||||
var type = new CreateTypeValue();
|
||||
type.setAddToDictionaryAction(false);
|
||||
type.setAutoHideSkipped(false);
|
||||
type.setCaseInsensitive(false);
|
||||
type.setDossierDictionaryOnly(false);
|
||||
type.setDossierTemplateId(dossierTemplate.getId());
|
||||
type.setHasDictionary(false);
|
||||
type.setHexColor("#dddddd");
|
||||
type.setHint(false);
|
||||
String label = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdf";
|
||||
type.setLabel(label);
|
||||
type.setRank(-4);
|
||||
type.setRecommendation(false);
|
||||
type.setRecommendationHexColor("#aaaaaa");
|
||||
type.setSkippedHexColor("#aaaaaa");
|
||||
String typeName = "lorem_ipsum_dolor_sit_amet_consectetuer_adipiscing_elit_aenean_commodo_ligula_eget_dolor_aenean_massa_cum_sociis_natoque_penatibus_et_magnis_dis_parturient_montes_nascetur_ridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdfridiculussdf";
|
||||
type.setType(typeName);
|
||||
|
||||
String typeId = toTypeId(typeName, dossierTemplate.getId(), dossier.getId());
|
||||
|
||||
assertTrue(label.length() > 255 || typeId.length() > 512);
|
||||
assertThatThrownBy(() -> dictionaryClient.addType(type)).hasMessageContaining("Value is too long.").isInstanceOf(FeignException.class);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user