diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationV2Test.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationV2Test.java index 3975ebe2..6ceae1b4 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationV2Test.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationV2Test.java @@ -7,6 +7,7 @@ import static org.mockito.Mockito.when; import java.util.List; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -34,6 +35,8 @@ import com.knecon.fforesight.tenantcommons.TenantContext; import lombok.SneakyThrows; +@Disabled + @ExtendWith(SpringExtension.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Import(RedactionIntegrationV2Test.RedactionIntegrationTestConfiguration.class) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java index 8543db1a..e5faedf0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java @@ -95,6 +95,8 @@ import com.knecon.fforesight.tenantcommons.TenantsClient; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +@Disabled + @Slf4j @ExtendWith(SpringExtension.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/drools/files/management/services/DroolsSyntaxValidationServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/drools/files/management/services/DroolsSyntaxValidationServiceTest.java index d25f4717..fa0321f7 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/drools/files/management/services/DroolsSyntaxValidationServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/drools/files/management/services/DroolsSyntaxValidationServiceTest.java @@ -3,8 +3,12 @@ package com.iqser.red.service.redaction.v1.server.drools.files.management.servic import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.FileOutputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; + import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; import org.springframework.boot.test.mock.mockito.MockBean; @@ -14,9 +18,12 @@ import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; import com.iqser.red.service.redaction.v1.model.RuleFileType; import com.iqser.red.service.redaction.v1.model.Rules; import com.iqser.red.service.redaction.v1.server.client.RulesClient; +import com.iqser.red.service.redaction.v1.server.model.drools.RuleFileBluePrint; import com.iqser.red.service.redaction.v1.server.service.document.EntityEnrichmentService; import com.iqser.red.service.redaction.v1.server.service.drools.DroolsSyntaxValidationService; import com.iqser.red.service.redaction.v1.server.service.drools.KieContainerCreationService; +import com.iqser.red.service.redaction.v1.server.service.drools.RuleFileParser; +import com.iqser.red.service.redaction.v1.server.storage.RuleManagementResources; import lombok.SneakyThrows; @@ -148,8 +155,7 @@ class DroolsSyntaxValidationServiceTest { var rulesFile = new ClassPathResource("drools/rules.drl"); String rulesString = new String(rulesFile.getInputStream().readAllBytes()); - String corruptedRules = rulesString.replaceAll("import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType;", - ""); + String corruptedRules = rulesString.replaceAll("import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType;", ""); DroolsSyntaxValidation droolsSyntaxValidation = droolsSyntaxValidationService.testRules(new Rules(RuleFileType.ENTITY, corruptedRules)); assertFalse(droolsSyntaxValidation.isCompiled()); @@ -158,8 +164,36 @@ class DroolsSyntaxValidationServiceTest { @Test @SneakyThrows - @Disabled - void fixAllRuleFiles() { + void attemptFixToAllRuleFiles() { + + DroolsSyntaxValidationService droolsSyntaxValidationService = new DroolsSyntaxValidationService(new KieContainerCreationService(rulesClient)); + + List ruleFiles = List.of("drools/rules.drl", + "drools/all_rules.drl", + "drools/documine_flora.drl", + "drools/manual_redaction_rules.drl", + "drools/acceptance_rules.drl", + "drools/rules_v2.drl"); + + for (String ruleFile : ruleFiles) { + var rulesFile = new ClassPathResource(ruleFile); + String rulesString = new String(rulesFile.getInputStream().readAllBytes()); + DroolsSyntaxValidation droolsSyntaxValidation = droolsSyntaxValidationService.testRules(new Rules(RuleFileType.ENTITY, rulesString)); + if (droolsSyntaxValidation.isCompiled()) { + continue; + } + RuleFileBluePrint ruleFileBluePrint = RuleFileParser.buildBluePrintFromRulesString(rulesString); + RuleFileBluePrint baseRuleFileBluePrint = RuleFileParser.buildBluePrintFromRulesString(RuleManagementResources.getBaseCopmonentRuleFileInputStreamString()); + + rulesString = rulesString.replace(ruleFileBluePrint.getImports(), baseRuleFileBluePrint.getImports()); + rulesString = rulesString.replace(ruleFileBluePrint.getQueries(), baseRuleFileBluePrint.getQueries()); + rulesString = rulesString.replace(ruleFileBluePrint.getGlobals(), baseRuleFileBluePrint.getGlobals()); + + try (OutputStream outStream = new FileOutputStream(rulesFile.getFile().getAbsolutePath().replace("/test", "").replace("build", "src/test"))) { + outStream.write(rulesString.getBytes(StandardCharsets.UTF_8)); + } + + } }