diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java index df53f3842..e19814a7a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java @@ -1,6 +1,7 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; 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.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.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.SystemRulesSeperationRequest; 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.DroolsValidation; @@ -43,6 +47,11 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { public void testRules() { 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)); 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"); 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(versionClient.getVersions(List.of(dossierTemplate.getId())) .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 when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(Collections.emptyList()) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); ResponseEntity response = rulesClient.upload(request); @@ -83,13 +94,13 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { assertThat(response.getBody().getDeprecatedWarnings()).isNotEmpty(); 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 when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(errorMessages) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); response = rulesClient.upload(request); @@ -117,8 +128,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { // case 1: dry-run false, error messages and warning messages when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(errorMessages) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); try { rulesClient.upload(request); @@ -127,13 +137,13 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { } 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 when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(Collections.emptyList()) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); ResponseEntity response = rulesClient.upload(request); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/VersionsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/VersionsTest.java index 957c9414d..2f2c2942a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/VersionsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/VersionsTest.java @@ -5,9 +5,9 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.List; import java.util.Map; +import org.apache.http.HttpStatus; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; 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); ResponseEntity rulesResponse = rulesClient.upload(rulesUploadRequest); - assertThat(rulesResponse.getStatusCode().value()).isEqualTo(HttpStatus.OK); + assertThat(rulesResponse.getStatusCode().value()).isEqualTo(HttpStatus.SC_OK); dictionaryClient.addType(CreateTypeValue.builder() .type("type_dossier") 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 2160f8673..742c7553b 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 @@ -165,7 +165,7 @@ public abstract class AbstractPersistenceServerServiceTest { @MockBean protected EntityLogService entityLogService; @MockBean - private RuleBuilderClient ruleBuilderClient; + protected RuleBuilderClient ruleBuilderClient; @MockBean protected PDFTronClient pdfTronRedactionClient; @Autowired diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/rules/RulesResponse.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/rules/RulesResponse.java index 27b19df65..ba2e50930 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/rules/RulesResponse.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/rules/RulesResponse.java @@ -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") private boolean timeoutDetected; + @Schema(description = "validation result, only set when uploading rules") + private DroolsValidationResponse droolsValidationResponse; }