RED-9472: seperation of system rules
fixed failing tests added validatioresponse to rulesresponse
This commit is contained in:
parent
7bc31b530b
commit
d41acb5797
@ -1,6 +1,7 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -19,7 +20,10 @@ import com.iqser.red.service.peristence.v1.server.integration.service.DossierTem
|
|||||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.DroolsValidationResponse;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.DroolsValidationResponse;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesResponse;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUpdateRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequestModel;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequestModel;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.SystemRulesSeperationRequest;
|
||||||
import com.iqser.red.service.redaction.v1.model.DroolsSyntaxDeprecatedWarnings;
|
import com.iqser.red.service.redaction.v1.model.DroolsSyntaxDeprecatedWarnings;
|
||||||
import com.iqser.red.service.redaction.v1.model.DroolsSyntaxErrorMessage;
|
import com.iqser.red.service.redaction.v1.model.DroolsSyntaxErrorMessage;
|
||||||
import com.iqser.red.service.redaction.v1.model.DroolsValidation;
|
import com.iqser.red.service.redaction.v1.model.DroolsValidation;
|
||||||
@ -43,6 +47,11 @@ public class RulesTest extends AbstractPersistenceServerServiceTest {
|
|||||||
public void testRules() {
|
public void testRules() {
|
||||||
|
|
||||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||||
|
when(ruleBuilderClient.getRuleFileWithoutSystemRules(any(SystemRulesSeperationRequest.class))).thenReturn(new RulesResponse("lorem ipsum", dossierTemplate.getId(), false));
|
||||||
|
when(ruleBuilderClient.mergeUserUpdateRules(any(RulesUpdateRequest.class))).thenReturn(new ResponseEntity(new RulesResponse("lorem ipsum dolor sit amet",
|
||||||
|
dossierTemplate.getId(),
|
||||||
|
false),
|
||||||
|
org.springframework.http.HttpStatus.OK));
|
||||||
|
|
||||||
var response = rulesClient.upload(new RulesUploadRequestModel("lorem ipsum", dossierTemplate.getId(), RuleFileType.ENTITY, false));
|
var response = rulesClient.upload(new RulesUploadRequestModel("lorem ipsum", dossierTemplate.getId(), RuleFileType.ENTITY, false));
|
||||||
assertThat(response.getStatusCode().value()).isEqualTo(HttpStatus.SC_OK);
|
assertThat(response.getStatusCode().value()).isEqualTo(HttpStatus.SC_OK);
|
||||||
@ -51,6 +60,9 @@ public class RulesTest extends AbstractPersistenceServerServiceTest {
|
|||||||
assertThat(rulesClient.download(dossierTemplate.getId()).getRules()).isEqualTo("lorem ipsum");
|
assertThat(rulesClient.download(dossierTemplate.getId()).getRules()).isEqualTo("lorem ipsum");
|
||||||
|
|
||||||
response = rulesClient.upload(new RulesUploadRequestModel("lorem ipsum dolor sit amet", dossierTemplate.getId(), RuleFileType.ENTITY, false));
|
response = rulesClient.upload(new RulesUploadRequestModel("lorem ipsum dolor sit amet", dossierTemplate.getId(), RuleFileType.ENTITY, false));
|
||||||
|
when(ruleBuilderClient.getRuleFileWithoutSystemRules(any(SystemRulesSeperationRequest.class))).thenReturn(new RulesResponse("lorem ipsum dolor sit amet",
|
||||||
|
dossierTemplate.getId(),
|
||||||
|
false));
|
||||||
assertThat(response.getStatusCode().value()).isEqualTo(HttpStatus.SC_OK);
|
assertThat(response.getStatusCode().value()).isEqualTo(HttpStatus.SC_OK);
|
||||||
assertThat(versionClient.getVersions(List.of(dossierTemplate.getId()))
|
assertThat(versionClient.getVersions(List.of(dossierTemplate.getId()))
|
||||||
.get(dossierTemplate.getId()).getRulesVersion()).isEqualTo(4);
|
.get(dossierTemplate.getId()).getRulesVersion()).isEqualTo(4);
|
||||||
@ -72,8 +84,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest {
|
|||||||
// case 1: dry-run true, no error messages just warning messages
|
// case 1: dry-run true, no error messages just warning messages
|
||||||
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
||||||
.syntaxErrorMessages(Collections.emptyList())
|
.syntaxErrorMessages(Collections.emptyList())
|
||||||
.deprecatedWarnings(
|
.deprecatedWarnings(warningMessages)
|
||||||
warningMessages)
|
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
ResponseEntity<DroolsValidationResponse> response = rulesClient.upload(request);
|
ResponseEntity<DroolsValidationResponse> response = rulesClient.upload(request);
|
||||||
@ -83,13 +94,13 @@ public class RulesTest extends AbstractPersistenceServerServiceTest {
|
|||||||
assertThat(response.getBody().getDeprecatedWarnings()).isNotEmpty();
|
assertThat(response.getBody().getDeprecatedWarnings()).isNotEmpty();
|
||||||
|
|
||||||
assertThat(versionClient.getVersions(List.of(dossierTemplate.getId()))
|
assertThat(versionClient.getVersions(List.of(dossierTemplate.getId()))
|
||||||
.get(dossierTemplate.getId()).getRulesVersion()).isEqualTo(2); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate()
|
.get(dossierTemplate.getId())
|
||||||
|
.getRulesVersion()).isEqualTo(3); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate(), 3. beim rules mergen on upload
|
||||||
|
|
||||||
// case 2: dry-run true, error messages and warning messages
|
// case 2: dry-run true, error messages and warning messages
|
||||||
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
||||||
.syntaxErrorMessages(errorMessages)
|
.syntaxErrorMessages(errorMessages)
|
||||||
.deprecatedWarnings(
|
.deprecatedWarnings(warningMessages)
|
||||||
warningMessages)
|
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
response = rulesClient.upload(request);
|
response = rulesClient.upload(request);
|
||||||
@ -117,8 +128,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest {
|
|||||||
// case 1: dry-run false, error messages and warning messages
|
// case 1: dry-run false, error messages and warning messages
|
||||||
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
||||||
.syntaxErrorMessages(errorMessages)
|
.syntaxErrorMessages(errorMessages)
|
||||||
.deprecatedWarnings(
|
.deprecatedWarnings(warningMessages)
|
||||||
warningMessages)
|
|
||||||
.build());
|
.build());
|
||||||
try {
|
try {
|
||||||
rulesClient.upload(request);
|
rulesClient.upload(request);
|
||||||
@ -127,13 +137,13 @@ public class RulesTest extends AbstractPersistenceServerServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
assertThat(versionClient.getVersions(List.of(dossierTemplate.getId()))
|
assertThat(versionClient.getVersions(List.of(dossierTemplate.getId()))
|
||||||
.get(dossierTemplate.getId()).getRulesVersion()).isEqualTo(2); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate()
|
.get(dossierTemplate.getId())
|
||||||
|
.getRulesVersion()).isEqualTo(3); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate(), 3. beim merge von user rules
|
||||||
|
|
||||||
// case 2: dry-run false, no error messages just warning messages
|
// case 2: dry-run false, no error messages just warning messages
|
||||||
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder()
|
||||||
.syntaxErrorMessages(Collections.emptyList())
|
.syntaxErrorMessages(Collections.emptyList())
|
||||||
.deprecatedWarnings(
|
.deprecatedWarnings(warningMessages)
|
||||||
warningMessages)
|
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
ResponseEntity<DroolsValidationResponse> response = rulesClient.upload(request);
|
ResponseEntity<DroolsValidationResponse> response = rulesClient.upload(request);
|
||||||
|
|||||||
@ -5,9 +5,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.http.HttpStatus;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
|
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
|
||||||
@ -54,7 +54,7 @@ public class VersionsTest extends AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
var rulesUploadRequest = new RulesUploadRequestModel("lorem ipsum", dossier.getDossierTemplateId(), RuleFileType.ENTITY, false);
|
var rulesUploadRequest = new RulesUploadRequestModel("lorem ipsum", dossier.getDossierTemplateId(), RuleFileType.ENTITY, false);
|
||||||
ResponseEntity<DroolsValidationResponse> rulesResponse = rulesClient.upload(rulesUploadRequest);
|
ResponseEntity<DroolsValidationResponse> rulesResponse = rulesClient.upload(rulesUploadRequest);
|
||||||
assertThat(rulesResponse.getStatusCode().value()).isEqualTo(HttpStatus.OK);
|
assertThat(rulesResponse.getStatusCode().value()).isEqualTo(HttpStatus.SC_OK);
|
||||||
|
|
||||||
dictionaryClient.addType(CreateTypeValue.builder()
|
dictionaryClient.addType(CreateTypeValue.builder()
|
||||||
.type("type_dossier")
|
.type("type_dossier")
|
||||||
|
|||||||
@ -165,7 +165,7 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
@MockBean
|
@MockBean
|
||||||
protected EntityLogService entityLogService;
|
protected EntityLogService entityLogService;
|
||||||
@MockBean
|
@MockBean
|
||||||
private RuleBuilderClient ruleBuilderClient;
|
protected RuleBuilderClient ruleBuilderClient;
|
||||||
@MockBean
|
@MockBean
|
||||||
protected PDFTronClient pdfTronRedactionClient;
|
protected PDFTronClient pdfTronRedactionClient;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@ -19,5 +19,7 @@ public class RulesResponse {
|
|||||||
|
|
||||||
@Schema(description = "Bad written rules can lead to timeouts or endless processing. This will be detected by the system and all analyse request for the rules will be rejected. This flag indicates that a timeout was detected and you need to fix the rules")
|
@Schema(description = "Bad written rules can lead to timeouts or endless processing. This will be detected by the system and all analyse request for the rules will be rejected. This flag indicates that a timeout was detected and you need to fix the rules")
|
||||||
private boolean timeoutDetected;
|
private boolean timeoutDetected;
|
||||||
|
@Schema(description = "validation result, only set when uploading rules")
|
||||||
|
private DroolsValidationResponse droolsValidationResponse;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user