From: KrupaNagabhushan Date: Mon, 7 Jul 2025 11:29:37 +0000 (+0100) Subject: Fix postschemas test failures X-Git-Tag: 0.3.0~11 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F04%2F14704%2F1;p=smo%2Fteiv.git Fix postschemas test failures Issue-ID: SMO-191 Change-Id: Ia957779cafd48a35c7dcb0d1cd385cec35aad1e0 Signed-off-by: KrupaNagabhushan --- diff --git a/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java b/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java index f0f6c32..83ce995 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java +++ b/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java @@ -30,6 +30,7 @@ import java.util.*; import org.oran.smo.teiv.exception.TeivException; import org.oran.smo.teiv.exception.YangModelException; +import org.oran.smo.teiv.utils.yangparser.ExposureYangParser; import org.oran.smo.yangtools.parser.data.YangData; import org.oran.smo.yangtools.parser.findings.FindingSeverity; import org.oran.smo.yangtools.parser.findings.ModuleAndFindingTypeAndSchemaNodePathFilterPredicate; @@ -134,6 +135,7 @@ public class YangParser { context.setIgnoreImportedProtocolAccessibleObjects(true); context.setFailFast(false); yangDeviceModel.parseIntoYangModels(context, yangModels); + ExposureYangParser.validateContext(findingsManager); checkFindings(context.getFindingsManager(), severityCalculator); assert inputYangModel != null; diff --git a/teiv/src/main/java/org/oran/smo/teiv/utils/yangparser/ExposureYangParser.java b/teiv/src/main/java/org/oran/smo/teiv/utils/yangparser/ExposureYangParser.java index a46ff9f..6ded4ff 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/utils/yangparser/ExposureYangParser.java +++ b/teiv/src/main/java/org/oran/smo/teiv/utils/yangparser/ExposureYangParser.java @@ -32,6 +32,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import org.oran.smo.teiv.exception.YangException; +import org.oran.smo.yangtools.parser.findings.FindingsManager; import org.springframework.web.multipart.MultipartFile; import org.oran.smo.yangtools.parser.ParserExecutionContext; @@ -137,4 +138,8 @@ public class ExposureYangParser extends YangModelLoader { return resultMap; } + public static void validateContext(FindingsManager findingsManager) { + YangFindingsManager.handleExposureFindings(findingsManager); + } + } diff --git a/teiv/src/test/resources/contracts/exposure/schemas/02_postSchemas.groovy b/teiv/src/test/resources/contracts/exposure/schemas/02_postSchemas.groovy index 60b7225..ddc5216 100644 --- a/teiv/src/test/resources/contracts/exposure/schemas/02_postSchemas.groovy +++ b/teiv/src/test/resources/contracts/exposure/schemas/02_postSchemas.groovy @@ -716,7 +716,7 @@ import org.springframework.cloud.contract.spec.Contract body('''{ "status": "BAD_REQUEST", "message": "Invalid file input", - "details": "Invalid file input: Module 'o-ran-smo-teiv-ran' multiple times in the input, with both conformance types IMPLEMENT and IMPORT." + "details": "Invalid file input: Module 'o-ran-smo-teiv-ran' has multiple revisions in the input, but desired exact revision not specified in the 'import' statement." }''') } }, @@ -770,7 +770,7 @@ import org.springframework.cloud.contract.spec.Contract body('''{ "status": "BAD_REQUEST", "message": "Invalid file input", - "details": "Invalid file input: Missing content at the beginning of the document." + "details": "Invalid file input: Expected single statement ('module' or 'submodule')." }''') } },