import static org.oran.smo.teiv.utils.TeivConstants.INVALID_SCHEMA;
import static org.oran.smo.teiv.utils.TeivConstants.SCHEMA_ALREADY_EXISTS;
+import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
}
protected static void handleExposureFindings(FindingsManager findingsManager) {
+ Set<Finding> findings = findingsManager.getAllFindings();
+ if (findings.isEmpty()) {
+ return;
+ }
FindingSeverityCalculator severityCalculator = findingsManager.getFindingSeverityCalculator();
- for (Finding finding : findingsManager.getAllFindings()) {
- if (isErrorFinding(severityCalculator, finding)) {
- if (isInvalidSchemaFinding(finding)) {
- throw TeivException.invalidFileInput(INVALID_SCHEMA);
- } else if (finding.getFindingType().contains("P044_SAME_MODULE_IMPLEMENTS_AND_IMPORTS")) {
- throw TeivException.invalidFileInput(SCHEMA_ALREADY_EXISTS);
- } else {
- throw TeivException.invalidFileInput(finding.getMessage());
- }
- }
+ findings.stream().sorted(Comparator.comparing(Finding::getMessage)).filter(finding -> isErrorFinding(
+ severityCalculator, finding)).findFirst().ifPresent(YangFindingsManager::handleFindingsAsError);
+ }
+
+ private static void handleFindingsAsError(Finding finding) {
+ if (isInvalidSchemaFinding(finding)) {
+ throw TeivException.invalidFileInput(INVALID_SCHEMA);
+ } else if (finding.getFindingType().contains("P044_SAME_MODULE_IMPLEMENTS_AND_IMPORTS")) {
+ throw TeivException.invalidFileInput(SCHEMA_ALREADY_EXISTS);
+ } else {
+ throw TeivException.invalidFileInput(finding.getMessage());
}
}
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.oran.smo.teiv.exposure.spi.ModelRepository;
+import org.oran.smo.teiv.schema.MockSchemaLoader;
+import org.oran.smo.teiv.schema.SchemaLoaderException;
import org.oran.smo.teiv.service.SchemaCleanUpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@MockBean
SchemaCleanUpService schemaCleanUpService;
+ @BeforeAll
+ public static void beforeALL() throws UnsupportedOperationException, SchemaLoaderException {
+ MockSchemaLoader mockSchemaLoader = new MockSchemaLoader();
+ mockSchemaLoader.loadSchemaRegistry();
+ }
+
@AfterEach
protected void tearDown() {
healthStatus.setSchemaInitialized(false);