Skip to content

Commit b0fb161

Browse files
committed
RAP-131 Disabled SQL validation if no SQL assertion group is provided
1 parent 4315a2f commit b0fb161

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

dependency.txt

78.4 KB
Binary file not shown.

src/main/java/org/ihtsdo/rvf/core/service/ValidationRunner.java

+12-9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.slf4j.LoggerFactory;
2020
import org.springframework.beans.factory.annotation.Autowired;
2121
import org.springframework.stereotype.Service;
22+
import org.springframework.util.CollectionUtils;
2223

2324
import java.io.File;
2425
import java.io.IOException;
@@ -146,31 +147,33 @@ private void doRunValidations(ValidationRunConfig validationConfig, ValidationSt
146147
Map<String, Future<ValidationStatusReport>> taskMap = new HashMap<>();
147148
ExecutorService executorService = Executors.newFixedThreadPool(5);
148149
StringBuilder statusMessages = new StringBuilder();
149-
statusMessages.append("RVF assertions validation started");
150-
reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation());
151150

152-
ValidationStatusReport mysqlValidationStatusReport = new ValidationStatusReport(validationConfig);
153-
mysqlValidationStatusReport.setResultReport(new ValidationReport());
154-
taskMap.put("SQL Assertions", executorService.submit(() -> mysqlValidationService.runRF2MysqlValidations(validationConfig, mysqlValidationStatusReport)));
151+
if (!CollectionUtils.isEmpty(validationConfig.getGroupsList())) {
152+
statusMessages.append("RVF assertions validation started");
153+
reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation());
154+
ValidationStatusReport mysqlValidationStatusReport = new ValidationStatusReport(validationConfig);
155+
mysqlValidationStatusReport.setResultReport(new ValidationReport());
156+
taskMap.put("SQL Assertions", executorService.submit(() -> mysqlValidationService.runRF2MysqlValidations(validationConfig, mysqlValidationStatusReport)));
157+
}
155158

156159
if (validationConfig.isEnableDrools()) {
157-
statusMessages.append("\nDrools rules validation started");
160+
statusMessages.append(statusMessages.isEmpty() ? "" : "\n").append("Drools rules validation started");
158161
reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation());
159162
ValidationStatusReport droolsValidationStatusReport = new ValidationStatusReport(validationConfig);
160163
droolsValidationStatusReport.setResultReport(new ValidationReport());
161164
taskMap.put("Drools Assertions", executorService.submit(() -> droolsValidationService.runDroolsAssertions(validationConfig, droolsValidationStatusReport)));
162165
}
163166

164167
if (validationConfig.isEnableMRCMValidation()) {
165-
statusMessages.append("\nMRCM validation started");
168+
statusMessages.append(statusMessages.isEmpty() ? "" : "\n").append("MRCM validation started");
166169
reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation());
167170
ValidationStatusReport mrcmValidationStatusReport = new ValidationStatusReport(validationConfig);
168171
mrcmValidationStatusReport.setResultReport(new ValidationReport());
169172
taskMap.put("MRCM Validation", executorService.submit(() -> mrcmValidationService.runMRCMAssertionTests(mrcmValidationStatusReport, validationConfig)));
170173
}
171174

172175
if (validationConfig.isEnableTraceabilityValidation()) {
173-
statusMessages.append("\nTraceability comparison validation started");
176+
statusMessages.append(statusMessages.isEmpty() ? "" : "\n").append("Traceability comparison validation started");
174177
reportService.writeProgress(statusMessages.toString(), validationConfig.getStorageLocation());
175178
ValidationStatusReport traceabilityComparisonReport = new ValidationStatusReport(validationConfig);
176179
traceabilityComparisonReport.setResultReport(new ValidationReport());
@@ -247,7 +250,7 @@ private void updateExecutionSummary(ValidationStatusReport statusReport, Validat
247250
List<TestRunItem> failures = statusReport.getResultReport().getAssertionsFailed();
248251
Map<TestType, Integer> testTypeFailuresCount = new EnumMap<>(TestType.class);
249252
testTypeFailuresCount.put(TestType.ARCHIVE_STRUCTURAL, 0);
250-
testTypeFailuresCount.put(TestType.SQL, 0);
253+
testTypeFailuresCount.put(TestType.SQL, !CollectionUtils.isEmpty(validationRunConfig.getGroupsList()) ? 0 : -1);
251254
testTypeFailuresCount.put(TestType.DROOL_RULES, validationRunConfig.isEnableDrools() ? 0 : -1);
252255
testTypeFailuresCount.put(TestType.MRCM, validationRunConfig.isEnableMRCMValidation() ? 0 : -1);
253256
testTypeFailuresCount.put(TestType.TRACEABILITY, validationRunConfig.isEnableTraceabilityValidation() ? 0 : -1);

src/main/java/org/ihtsdo/rvf/rest/controller/TestUploadFileController.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.springframework.beans.factory.annotation.Autowired;
2424
import org.springframework.http.HttpStatus;
2525
import org.springframework.http.ResponseEntity;
26+
import org.springframework.util.CollectionUtils;
2627
import org.springframework.util.StringUtils;
2728
import org.springframework.web.bind.annotation.PostMapping;
2829
import org.springframework.web.bind.annotation.RequestParam;
@@ -191,7 +192,7 @@ public ResponseEntity<Map<String, String>> runPostTestPackage(
191192
@Parameter(description = "True if the test file contains RF2 delta files only. Defaults to false.") @RequestParam(value = RF2_DELTA_ONLY, required = false, defaultValue = "false") final boolean isRf2DeltaOnly,
192193
@Parameter(description = "Default to false to reduce the size of report file") @RequestParam(value = WRITE_SUCCESSES, required = false, defaultValue = "false") final boolean writeSucceses,
193194
@Parameter(description = "manifest.xml file(optional)") @RequestParam(value = MANIFEST, required = false) final MultipartFile manifestFile,
194-
@Parameter(description = "Assertion group names separated by a comma.") @RequestParam(value = GROUPS) final List<String> groupsList,
195+
@Parameter(description = "Assertion group names separated by a comma.") @RequestParam(value = GROUPS, required = false) final List<String> groupsList,
195196
@Parameter(description = "Assertion exclusion list separated by a comma.") @RequestParam(value = ASSERTION_EXCLUSION_LIST, required = false) final List<String> assertionExclusionList,
196197
@Parameter(description = "Drools rules group names") @RequestParam(value = DROOLS_RULES_GROUPS, required = false) final List<String> droolsRulesGroupsList,
197198
@Parameter(description = "Required for non-first time international release testing") @RequestParam(value = PREVIOUS_RELEASE, required = false) final String previousRelease,
@@ -274,7 +275,7 @@ public ResponseEntity<Map<String, String>> runPostTestPackageViaS3(
274275
@Parameter(description = "True if the test file contains RF2 delta files only. Defaults to false.") @RequestParam(value = RF2_DELTA_ONLY, required = false, defaultValue = "false") final boolean isRf2DeltaOnly,
275276
@Parameter(description = "Defaults to false to reduce the size of report file") @RequestParam(value = WRITE_SUCCESSES, required = false, defaultValue = "false") final boolean writeSucceses,
276277
@Parameter(description = "manifest.xml file path in AWS S3") @RequestParam(name = "manifestFileS3Path", required = false) final String manifestFileS3Path,
277-
@Parameter(description = "Assertion group names") @RequestParam(value = GROUPS) final List<String> groupsList,
278+
@Parameter(description = "Assertion group names") @RequestParam(value = GROUPS, required = false) final List<String> groupsList,
278279
@Parameter(description = "Assertion exclusion list separated by a comma.") @RequestParam(value = ASSERTION_EXCLUSION_LIST, required = false) final List<String> assertionExclusionList,
279280
@Parameter(description = "Drools rules group names") @RequestParam(value = DROOLS_RULES_GROUPS, required = false) final List<String> droolsRulesGroupsList,
280281
@Parameter(description = "Required for non-first time international release testing") @RequestParam(value = PREVIOUS_RELEASE, required = false) final String previousRelease,
@@ -357,7 +358,7 @@ private boolean isAssertionGroupsValid(List<String> validationGroups,
357358
Map<String, String> responseMap) {
358359
// check assertion groups
359360

360-
if (ValidationRunner.EMPTY_TEST_ASSERTION_GROUPS.equals(validationGroups)) {
361+
if (CollectionUtils.isEmpty(validationGroups) || ValidationRunner.EMPTY_TEST_ASSERTION_GROUPS.equals(validationGroups)) {
361362
return true;
362363
}
363364

0 commit comments

Comments
 (0)