diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/desugar/MockDesugar.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/desugar/MockDesugar.java index 5bd74cd596cd..d9ce5313f26e 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/desugar/MockDesugar.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/desugar/MockDesugar.java @@ -115,35 +115,13 @@ public void generateMockFunctions(BLangPackage pkgNode) { // Get the Mock Function map from the pkgNode Map mockFunctionMap = pkgNode.getTestablePkg().getMockFunctionNamesMap(); - // Get all the imports symbols from the testable package - Set mockFunctionSet = mockFunctionMap.keySet(); - ArrayList importsList = new ArrayList<>(); - for (BLangImportPackage importPkg : pkgNode.getTestablePkg().getImports()) { - if (importPkg.symbol == null) { - continue; - } - if (!importPkg.symbol.toString().contains(testPackageSymbol)) { - importsList.add(importPkg.symbol.toString()); - } - } - - // Get all the imports from the current package - for (BLangImportPackage importPkg : pkgNode.getImports()) { - if (importPkg.symbol == null) { - continue; - } - if (importsList.contains(importPkg.symbol.toString())) { - continue; - } - if (!importPkg.symbol.toString().contains(testPackageSymbol)) { - importsList.add(importPkg.symbol.toString()); - } - } + // Get the mock function type map from the pkgNode + Map isLegacyMockingMap = pkgNode.getTestablePkg().getIsLegacyMockingMap(); + // Get the set of functions to generate + Set mockFunctionSet = mockFunctionMap.keySet(); for (String function : mockFunctionSet) { - if (function.contains(pkgNode.packageID.toString()) ? !function.split(pkgNode.packageID.toString())[1]. - startsWith(MOCK_LEGACY_DELIMITER) : - !startsWithMockLegacyDelimiterForImportedMockFunctions(function, importsList)) { + if (!isLegacyMockingMap.get(function)) { pkgNode.getTestablePkg().functions.add(generateMockFunction(function)); } } diff --git a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/tree/BLangTestablePackage.java b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/tree/BLangTestablePackage.java index 412743a7b36c..87c9d4a9c3fa 100644 --- a/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/tree/BLangTestablePackage.java +++ b/compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/tree/BLangTestablePackage.java @@ -29,6 +29,8 @@ public class BLangTestablePackage extends BLangPackage { // Semantic Data //Map to maintain all the mock functions private Map mockFunctionNamesMap = new HashMap<>(); + + private final Map isLegacyMockingMap = new HashMap<>(); public Map getMockFunctionNamesMap() { return mockFunctionNamesMap; } @@ -46,4 +48,12 @@ public void accept(BLangNodeAnalyzer analyzer, T props) { public R apply(BLangNodeTransformer modifier, T props) { return modifier.transform(this, props); } + + public Map getIsLegacyMockingMap() { + return isLegacyMockingMap; + } + + public void addIsLegacyMockingMap(String id, Boolean isLegacy) { + this.isLegacyMockingMap.put(id, isLegacy); + } } diff --git a/misc/testerina/modules/testerina-core/src/main/java/org/ballerinalang/testerina/core/MockAnnotationProcessor.java b/misc/testerina/modules/testerina-core/src/main/java/org/ballerinalang/testerina/core/MockAnnotationProcessor.java index 4535ce9d2173..1a60b64447c9 100644 --- a/misc/testerina/modules/testerina-core/src/main/java/org/ballerinalang/testerina/core/MockAnnotationProcessor.java +++ b/misc/testerina/modules/testerina-core/src/main/java/org/ballerinalang/testerina/core/MockAnnotationProcessor.java @@ -149,6 +149,8 @@ public void process(SimpleVariableNode simpleVariableNode, List # --> ` to registry @@ -257,6 +259,8 @@ public void process(FunctionNode functionNode, List an (BLangTestablePackage) ((BLangFunction) functionNode).parent; // parent -> BLangPackage bLangTestablePackage.addMockFunction(functionToMockID + MOCK_LEGACY_DELIMITER + vals[1], functionName); + bLangTestablePackage.addIsLegacyMockingMap(functionToMockID + MOCK_LEGACY_DELIMITER + vals[1], + true); // Adding ` # --> ` to registry String className = getQualifiedClassName(bLangTestablePackage,