From abd6292096e93798bce2ca0e6305b5b55e0e5dee Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Tue, 16 May 2023 15:42:13 +0200 Subject: [PATCH 01/30] Version 0.2.8 Signed-off-by: Brian Wildt --- CHANGELOG.md | 4 ++ README.md | 2 +- build.gradle | 2 +- build/distributions/cobol-check-0.2.8.zip | Bin 0 -> 218127 bytes .../services/cobolLogic/Interpreter.java | 3 + .../cobolcheck/InterpreterControllerTest.java | 20 +++++++ vs code extension/CHANGELOG.md | 3 + ...-check-0.2.7.jar => cobol-check-0.2.8.jar} | Bin 243274 -> 243281 bytes vs code extension/package.json | 2 +- zapp.json | 55 ++++++++++++++++++ 10 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 build/distributions/cobol-check-0.2.8.zip rename vs code extension/Cobol-check/bin/{cobol-check-0.2.7.jar => cobol-check-0.2.8.jar} (95%) create mode 100644 zapp.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 08163dae..ce8d91a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.8\] 2023-05-16 - Unreleased +### Implemented +- Proper handling of END-EXEC without trailing period in WORKING-STORAGE + ## \[0.2.7\] 2023-03-21 - Unreleased ### Implemented - EXPECT now properly handles variable subscription without a space delimiter (EXPECT varibable(idx) TO BE 1) diff --git a/README.md b/README.md index 297fc837..5ebd7908 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.7 pre-release is available! +Version 0.2.8 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/build.gradle b/build.gradle index 451532fb..c9d8fc82 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.7' +def productVersion = '0.2.8' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/build/distributions/cobol-check-0.2.8.zip b/build/distributions/cobol-check-0.2.8.zip new file mode 100644 index 0000000000000000000000000000000000000000..84e0150ef5f722a3cbc770d5758618e5f9032160 GIT binary patch literal 218127 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%0AMU_XDA{H!`MGLd5eqY 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 delta 6888 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 k0Mw9l&408;{2&|>Uc0(V>bKNlMI8vp Date: Tue, 16 May 2023 16:10:25 +0200 Subject: [PATCH 02/30] Delete zapp.json Zapp-file is a local file, and should not be uploaded ti GitHub Signed-off-by: dakaa16 --- zapp.json | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 zapp.json diff --git a/zapp.json b/zapp.json deleted file mode 100644 index e6703efd..00000000 --- a/zapp.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "Bankdata", - "description": "This file is needed for fetching copybooks. If the file is missing, it will be recreated. If a newer version exists, the file will be overwritten. Version: 1.0.1", - "version": "3.0.0", - "author": { - "name": "Bankdata UDS" - }, - "propertyGroups": [ - { - "name": "localFolders", - "language": "cobol", - "libraries": [ - { - "name": "syslib", - "type": "local", - "locations": [ - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/batch", - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/cics", - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/generic", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/batch", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/cics", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/generic" - ] - } - ] - }, - { - "name": "hostDependencies", - "language": "cobol", - "libraries": [ - { - "name": "syslib", - "type": "mvs", - "locations": [ - "UBIBRW.BOX.SRC", - "UGRBOXP.TCIC.SRC", - "UGRBOXP.SCIC.SRC", - "UGRBOXP.MODTAG.SRC", - "UGRBOXP.AKTIV.SRC", - "UGRBOXP.DCAAKTIV.SRC", - "UGRBOXP.TCIC.DCLGENC2", - "UGRBOXP.SCIC.DCLGENC2", - "UGRBOXP.MODTAG.DCLGENC2", - "UGRBOXP.AKTIV.DCLGENC2", - "UGRBOXP.DCAAKTIV.DCLGENC2", - "UGRBOXP.TCIC.WSAGEN", - "UGRBOXP.SCIC.WSAGEN", - "UGRBOXP.AKTIV.WSAGEN", - "SYS1.SCEESAMP" - ] - } - ] - } - ] - } \ No newline at end of file From 0ba86aada24c0ce13173e7befd8b0bd212b0ee43 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 22:08:37 +0800 Subject: [PATCH 03/30] add check option Signed-off-by: issacto --- .../cobolcheck/features/argumentHandler/ArgumentHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index 5ab4ca59..e8526378 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -142,6 +142,10 @@ private void processCommandLineArgumentArray(String[] args) { public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); + if(options.isEmpty()){ + // return error when no program is passed + throw new PossibleInternalLogicErrorException(Messages.get("ERR005")); + } for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { String programArgs = options.get(optionKey).argumentValue; From 59d1c5861ab7055214ea73017d480ba0445725c3 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 23:13:02 +0800 Subject: [PATCH 04/30] add java test Signed-off-by: issacto --- .../features/argumentHandler/ArgumentHandler.java | 2 +- .../cobolcheck/messages/messages.properties | 3 +++ .../cobolcheck/ArgumentHandlerTest.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index e8526378..ac29525c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -144,7 +144,7 @@ public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); if(options.isEmpty()){ // return error when no program is passed - throw new PossibleInternalLogicErrorException(Messages.get("ERR005")); + throw new CommandLineArgumentException(Messages.get("ERR030")); } for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index c5c2046c..a3597639 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -30,6 +30,9 @@ ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. +ERR030 = ERR030: Command line missing program argument. + + WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. WRN002 = WRN002: No test suite files were found under directory %1$s. WRN003 = WRN003: DirectoryNameMatcher caught IOException on file %1$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index 75f2ef5b..354bcf97 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -133,4 +133,15 @@ public void it_throws_when_no_value_is_passed_for_the_last_argument_and_it_requi }); } + @Test + public void it_throws_when_program_argument_is_not_present() { + Throwable ex = assertThrows(CommandLineArgumentException.class, () -> { + ArgumentHandler argumentHandler = new ArgumentHandler(new String[] { }, + optionSpec); + argumentHandler.loadArgProgramPaths(); + }); + assertEquals("ERR030: Command line missing program argument.", + ex.getMessage()); + } + } From a72c45e05909442eeb4770a7fdc8ac8a2276e262 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 23:19:22 +0800 Subject: [PATCH 05/30] change test name Signed-off-by: issacto --- .../cobolcheck/messages/messages.properties | 2 +- .../openmainframeproject/cobolcheck/ArgumentHandlerTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index a3597639..40705dca 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -30,7 +30,7 @@ ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. -ERR030 = ERR030: Command line missing program argument. +ERR030 = ERR030: Command line missing program argument '-p programName' . WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index 354bcf97..dbdc9151 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -140,7 +140,7 @@ public void it_throws_when_program_argument_is_not_present() { optionSpec); argumentHandler.loadArgProgramPaths(); }); - assertEquals("ERR030: Command line missing program argument.", + assertEquals("ERR030: Command line missing program argument '-p programName' .", ex.getMessage()); } From 0a0476f1d1e2be58e0da0ef98c56f5ef60cc09ac Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 27 Jun 2023 17:38:27 +0800 Subject: [PATCH 06/30] fix arguments bug Signed-off-by: issacto --- .../features/argumentHandler/ArgumentHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index ac29525c..3a006a80 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -142,10 +142,7 @@ private void processCommandLineArgumentArray(String[] args) { public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); - if(options.isEmpty()){ - // return error when no program is passed - throw new CommandLineArgumentException(Messages.get("ERR030")); - } + boolean isProgramSpecified = false; for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { String programArgs = options.get(optionKey).argumentValue; @@ -156,8 +153,13 @@ public void loadArgProgramPaths(){ newValue += "|"; } options.get(optionKey).argumentValue = newValue.substring(0, newValue.length()-1); + if(!programArgs.equals("")) isProgramSpecified = true; } } + if(!isProgramSpecified){ + // return error when no program is passed + throw new CommandLineArgumentException(Messages.get("ERR030")); + } } private OptionValue lookupOption(String requestedOption) { From 82c37af86ab94367f0f3f39d9da21ac10599b397 Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 27 Jun 2023 22:00:09 +0800 Subject: [PATCH 07/30] add test case Signed-off-by: issacto --- .../cobolcheck/ArgumentHandlerTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index dbdc9151..e2deef49 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -144,4 +144,15 @@ public void it_throws_when_program_argument_is_not_present() { ex.getMessage()); } + @Test + public void it_throws_when_program_argument_is_not_presen_and_has_other_argument() { + Throwable ex = assertThrows(CommandLineArgumentException.class, () -> { + ArgumentHandler argumentHandler = new ArgumentHandler(new String[] {"-c", "config.properties" }, + optionSpec); + argumentHandler.loadArgProgramPaths(); + }); + assertEquals("ERR030: Command line missing program argument '-p programName' .", + ex.getMessage()); + } + } From c9076418ab72eec9bbd095defed46b9574810a99 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 01:29:21 +0800 Subject: [PATCH 08/30] Add arguments without commas Signed-off-by: issacto --- .../testSuiteParser/TestSuiteParser.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8e661c89..d463a1be 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -76,6 +76,8 @@ public class TestSuiteParser { private int testCaseNumber = 0; private boolean expectNumericCompare; + private boolean previousLineContainsArgument = false; + // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; private static final String COBOL_DISPLAY_TESTSUITE = " DISPLAY \"TESTSUITE:\""; @@ -176,6 +178,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, numericFields = numericFieldsList; String testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); while (testSuiteToken != null) { + if (!testSuiteToken.startsWith(Constants.QUOTE) && !testSuiteToken.startsWith(Constants.APOSTROPHE)) { testSuiteToken = testSuiteToken.toUpperCase(Locale.ROOT); } @@ -184,6 +187,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; } + boolean cobolTokenIsFieldName = (expectInProgress || expectQualifiedName || expectMockIdentifier || (expectMockArguments && !expectUsing)); @@ -195,11 +199,34 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // to next token expectMockArguments = false; expectUsing = false; + // System.out.println("TESTING"); + // System.out.println(keyword.keywordAction()); + // System.out.println(testSuiteToken); handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + System.out.println(testSuiteToken); + continue; + } + + if (!verifyInProgress && expectMockArguments + && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { + // In this case we expected cobol verbs and stop counting arguments + // update the keyword as fieldname was assumed + keyword = Keywords.getKeywordFor(testSuiteToken, false); + expectMockArguments = false; + expectUsing = false; + // System.out.println("TESTING"); + // System.out.println(testSuiteToken); + // System.out.println(keyword.keywordAction()); + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); + testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + previousLineContainsArgument=false; continue; } + + if (!testSuiteErrorLog.checkExpectedTokenSyntax(keyword, testSuiteToken, currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber)) { testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); @@ -318,6 +345,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, addTestCodeForAssertion(parsedTestSuiteLines, numericFields); toBeInProgress = false; } + + if (expectMockIdentifier) { expectMockIdentifier = false; ignoreCobolStatementAndFieldNameKeyAction = true; @@ -345,6 +374,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!expectUsing) { currentLineContainsArgument = true; ignoreCobolStatementAndFieldNameKeyAction = true; + if (verifyInProgress) currentVerify.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); else @@ -354,13 +384,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - // Contains no arguments or all arguments has been added - expectMockArguments = false; - expectUsing = false; - if (!verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); - } + previousLineContainsArgument = currentLineContainsArgument; } if (verifyInProgress) { @@ -374,6 +398,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, break; case Constants.ALPHANUMERIC_LITERAL_KEYWORD: + + if (expectTestsuiteName) { expectTestsuiteName = false; currentTestSuiteName = testSuiteToken; @@ -618,7 +644,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, break; } if (CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { - if (cobolStatementInProgress) { + if ( cobolStatementInProgress) { addUserWrittenCobolStatement(parsedTestSuiteLines); initializeCobolStatement(); } @@ -830,6 +856,7 @@ private String getCallArgument(String referenceType, String value) { outPut = ("REFERENCE " + value.replace(",", "")); else outPut = (referenceType + " " + value.replace(",", "")); + return outPut; } From c738f6868c82b4900e03d5f94cd587f3ef371785 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 10:02:46 +0800 Subject: [PATCH 09/30] add ignoreStatement Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index d463a1be..714e7e81 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -210,7 +210,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!verifyInProgress && expectMockArguments && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { - // In this case we expected cobol verbs and stop counting arguments + // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; @@ -218,7 +218,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // System.out.println("TESTING"); // System.out.println(testSuiteToken); // System.out.println(keyword.keywordAction()); - ignoreCobolStatementAndFieldNameKeyAction = true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); previousLineContainsArgument=false; @@ -384,6 +383,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + } previousLineContainsArgument = currentLineContainsArgument; } From 6d29d78ba210395a545d3fa32c944712ca37298c Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 10:13:18 +0800 Subject: [PATCH 10/30] add ignoreStatement Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 714e7e81..7740d0c7 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -218,6 +218,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // System.out.println("TESTING"); // System.out.println(testSuiteToken); // System.out.println(keyword.keywordAction()); + ignoreCobolStatementAndFieldNameKeyAction=true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); previousLineContainsArgument=false; @@ -383,9 +384,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - if (!verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; - } previousLineContainsArgument = currentLineContainsArgument; } From 11a6346ce50a22996f850a94f4f29f4c4f4df8a5 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:10:12 +0800 Subject: [PATCH 11/30] fix error Signed-off-by: issacto --- .../testSuiteParser/TestSuiteParser.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7740d0c7..7009242d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -76,8 +76,6 @@ public class TestSuiteParser { private int testCaseNumber = 0; private boolean expectNumericCompare; - private boolean previousLineContainsArgument = false; - // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; private static final String COBOL_DISPLAY_TESTSUITE = " DISPLAY \"TESTSUITE:\""; @@ -188,23 +186,25 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } + boolean cobolTokenIsFieldName = (expectInProgress || expectQualifiedName || expectMockIdentifier || (expectMockArguments && !expectUsing)); Keyword keyword = Keywords.getKeywordFor(testSuiteToken, cobolTokenIsFieldName); + + System.out.println("TESTING"); + System.out.println(keyword.keywordAction()); + System.out.println(testSuiteToken); + if (!verifyInProgress && expectUsing && expectMockArguments && !keyword.value().equals(Constants.USING_TOKEN)) { // In this case we expected mock arguments, but got none. We end the mock and go // to next token expectMockArguments = false; expectUsing = false; - // System.out.println("TESTING"); - // System.out.println(keyword.keywordAction()); - // System.out.println(testSuiteToken); handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - System.out.println(testSuiteToken); continue; } @@ -212,16 +212,12 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed - keyword = Keywords.getKeywordFor(testSuiteToken, false); + // keyword = Keywords.getKeywordFor(testSuiteToken, false); + System.out.println("Appeared"); expectMockArguments = false; expectUsing = false; - // System.out.println("TESTING"); - // System.out.println(testSuiteToken); - // System.out.println(keyword.keywordAction()); - ignoreCobolStatementAndFieldNameKeyAction=true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - previousLineContainsArgument=false; continue; } @@ -384,7 +380,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - previousLineContainsArgument = currentLineContainsArgument; + expectUsing = false; + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + } } if (verifyInProgress) { From a2e5f5ec918ad04bbd646f3ccc9ee65b7a26d8aa Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:15:08 +0800 Subject: [PATCH 12/30] clean Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7009242d..e1b5be8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -192,11 +192,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, || (expectMockArguments && !expectUsing)); Keyword keyword = Keywords.getKeywordFor(testSuiteToken, cobolTokenIsFieldName); - - System.out.println("TESTING"); - System.out.println(keyword.keywordAction()); - System.out.println(testSuiteToken); - if (!verifyInProgress && expectUsing && expectMockArguments && !keyword.value().equals(Constants.USING_TOKEN)) { // In this case we expected mock arguments, but got none. We end the mock and go @@ -213,9 +208,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); - System.out.println("Appeared"); expectMockArguments = false; - expectUsing = false; handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; From cf5aaa2df360fb33e8f6114cea4f5dd917dd3ef7 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:42:54 +0800 Subject: [PATCH 13/30] clean Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index e1b5be8c..c22d8b58 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -203,12 +203,13 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - if (!verifyInProgress && expectMockArguments + if (expectMockArguments && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; + expectUsing = false; handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; @@ -370,8 +371,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMock.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); currentMockArgument = ""; - if (testSuiteToken.endsWith(",")) - break; + } expectUsing = false; if (!verifyInProgress) { From b27755e8bcaaed47555654335fc97d4339b2609d Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:58:15 +0800 Subject: [PATCH 14/30] clean Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index c22d8b58..7aee8a65 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -373,10 +373,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMockArgument = ""; } - expectUsing = false; - if (!verifyInProgress) { + + if (expectUsing && !verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; } + expectUsing = false; } if (verifyInProgress) { From 6aa8ee9f98529db1bcd57f3967c46552c0934e0a Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:04:56 +0800 Subject: [PATCH 15/30] fix testing error Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7aee8a65..fb84db46 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -374,10 +374,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, } - if (expectUsing && !verifyInProgress) { + if (!currentLineContainsArgument && !verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; + expectUsing = false; } - expectUsing = false; + } if (verifyInProgress) { From 9c6075a1320c9933ecf4869407711585c8de63ea Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:15:11 +0800 Subject: [PATCH 16/30] fix testing error Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index fb84db46..8783dc8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -372,11 +372,15 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMockArgument = ""; - } - - if (!currentLineContainsArgument && !verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; + }else{ expectUsing = false; + expectMockArguments = false; + if (expectUsing && !verifyInProgress) { + System.out.println("TRIGGERED"); + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); + } + } } From 257f55d66a51a35b01e68bce9b0bf7e9396dcc29 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:20:15 +0800 Subject: [PATCH 17/30] fix testing error Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8783dc8c..5432a31e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -375,8 +375,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, }else{ expectUsing = false; expectMockArguments = false; - if (expectUsing && !verifyInProgress) { - System.out.println("TRIGGERED"); + if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); } From d9ca4a2d82c121fe37c3a9791177069db0b42b04 Mon Sep 17 00:00:00 2001 From: issacto Date: Sat, 24 Jun 2023 23:00:41 +0800 Subject: [PATCH 18/30] fix java test error Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 5432a31e..c88a47de 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -203,15 +203,20 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - if (expectMockArguments - && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { + if (expectMockArguments && !expectUsing + && (CobolVerbs.isCobolVerb(testSuiteToken)|| testSuiteToken.equals("END-MOCK"))) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; expectUsing = false; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); - testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); + } + if(testSuiteToken.equals("END-MOCK") ){ + testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + } continue; } From b59b7e6a682910ac012cc800fdf97599ffd4511e Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 29 Jun 2023 18:26:46 +0800 Subject: [PATCH 19/30] update test case Signed-off-by: issacto --- .../java/org/openmainframeproject/cobolcheck/MockingTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 817d51ae..4de87a68 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -260,7 +260,6 @@ public void call_mock_gets_correct_lines_and_ignores_end_call() throws IOExcepti String str7 = " END-MOCK"; List expected = new ArrayList<>(); - expected.add(" "); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); From 8017c5cacbfc24b84a6223da1c32de3a3593ac76 Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 01:11:56 +0800 Subject: [PATCH 20/30] update test case Signed-off-by: issacto --- .../cobolcheck/TestSuiteErrorLogTest.java | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index abc96f35..26a8bbc9 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -296,7 +296,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context() { } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_1() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); @@ -315,6 +315,28 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_2() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; + expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + System.out.println("actualResult: "); + System.out.println(actualResult); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_unexpected_keyword_in_an_expect_context() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); @@ -392,6 +414,30 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_after_verify_() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From 06681a98db0a5dd74a949937a1031cbce509121d Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 18:03:12 +0800 Subject: [PATCH 21/30] update test result Signed-off-by: issacto --- .../cobolcheck/TestSuiteErrorLogTest.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 26a8bbc9..9f8c2518 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -302,9 +302,16 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); String expectedResult = ""; - expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; - expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; assertThrows(TestSuiteSyntaxException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), @@ -322,9 +329,16 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); String expectedResult = ""; - expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; - expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; assertThrows(TestSuiteSyntaxException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), @@ -332,8 +346,6 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume }); String actualResult = testSuiteErrorLog.getErrorMessages(); - System.out.println("actualResult: "); - System.out.println(actualResult); assertEquals(expectedResult, actualResult); } From 6d8e77fb9f4521a311d5020b31c6571db2072c8c Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 4 Jul 2023 18:53:22 +0800 Subject: [PATCH 22/30] clean comment Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index c88a47de..6b8ae6c9 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -205,9 +205,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (expectMockArguments && !expectUsing && (CobolVerbs.isCobolVerb(testSuiteToken)|| testSuiteToken.equals("END-MOCK"))) { - // NEW: In this case we expected cobol verbs and stop counting arguments + // In this case we expected cobol verbs and stop mock arguments // update the keyword as fieldname was assumed - // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; expectUsing = false; if (!verifyInProgress) { From fff0f110b16ad6fb9da001163901a72fa812889b Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 12:37:27 +0800 Subject: [PATCH 23/30] add test cases Signed-off-by: issacto --- .../cobolcheck/MockingTest.java | 40 +++++++++++++ .../cobolcheck/TestSuiteErrorLogTest.java | 58 ++++++++++++++++++- 2 files changed, 96 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 4de87a68..d0eb42fb 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -295,6 +295,46 @@ public void call_mock_gets_correct_arguments() throws IOException { assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); } + @Test + public void call_mock_gets_correct_arguments_with_commas() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2 VALUE-3"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add("CONTENT VALUE-1"); + expected.add("REFERENCE VALUE-2"); + expected.add("REFERENCE VALUE-3"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); + assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); + } + + @Test + public void call_mock_gets_correct_arguments_with_one_comma() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2, VALUE-3"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add("CONTENT VALUE-1"); + expected.add("REFERENCE VALUE-2"); + expected.add("REFERENCE VALUE-3"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); + assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); + } + @Test public void mock_gets_global_scope() throws IOException { String str1 = " TESTSUITE \"Name of test suite\""; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 9f8c2518..6fee65e1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -296,7 +296,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context() { } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_1() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_and_commas_1() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); @@ -323,7 +323,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_2() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_and_commas_2() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); @@ -349,6 +349,60 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_without_commas_1() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1 VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_without_commas_2() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1 VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_unexpected_keyword_in_an_expect_context() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From 2ae38aa6906480c5ac28e34d4476dff9cedbf874 Mon Sep 17 00:00:00 2001 From: Akash Kumar <91385321+AkashKumar7902@users.noreply.github.com> Date: Wed, 5 Jul 2023 21:38:17 +0530 Subject: [PATCH 24/30] Fixed cobolcheck cannot handle spaces in path Signed-off-by: Akash Kumar <91385321+AkashKumar7902@users.noreply.github.com> --- scripts/windows_gnucobol_run_tests.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/windows_gnucobol_run_tests.cmd b/scripts/windows_gnucobol_run_tests.cmd index affff77e..94961874 100644 --- a/scripts/windows_gnucobol_run_tests.cmd +++ b/scripts/windows_gnucobol_run_tests.cmd @@ -4,4 +4,4 @@ rem rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %* && %~dpn1 \ No newline at end of file +cobc -x %* && "%~dpn1" From 6f18796f4b81dc60a01f946ee9d4da3b642df4de Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 17:39:40 +0800 Subject: [PATCH 25/30] add default return code Signed-off-by: issacto --- .../openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index 343e0bda..c639d7e3 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -1,5 +1,6 @@ * CCHECKRESULTPD.CPY DISPLAY SPACE + MOVE 4 TO RETURN-CODE MOVE ==UT==TEST-CASE-COUNT TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' MOVE ==UT==NUMBER-PASSED TO ==UT==TEST-CASE-NUMBER From dc460c9580b6ceb3348f4dde5de7a1b7495d53f5 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 10:10:16 +0800 Subject: [PATCH 26/30] add return code Signed-off-by: issacto --- .../cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY index be62dcc5..a4b080c2 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY @@ -239,6 +239,7 @@ . ==UT==INITIALIZE. MOVE SPACES TO ==UT==FILE-INFORMATION + MOVE 4 to RETURN-CODE . ==UT==END. From 219070af892ed4258a12d2784d89169245ae0837 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 10:12:17 +0800 Subject: [PATCH 27/30] revert wrong return code Signed-off-by: issacto --- .../openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index c639d7e3..343e0bda 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -1,6 +1,5 @@ * CCHECKRESULTPD.CPY DISPLAY SPACE - MOVE 4 TO RETURN-CODE MOVE ==UT==TEST-CASE-COUNT TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' MOVE ==UT==NUMBER-PASSED TO ==UT==TEST-CASE-NUMBER From 6bfa59bb45c3335e19cd34f9586b1b1f825fbdb6 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 6 Jul 2023 00:13:45 +0800 Subject: [PATCH 28/30] add test case Signed-off-by: issacto --- src/main/cobol/RETURNCODE.CBL | 21 +++++++++++++++++++++ src/test/cobol/RETURNCODE/ReturnCode.cut | 16 ++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/main/cobol/RETURNCODE.CBL create mode 100644 src/test/cobol/RETURNCODE/ReturnCode.cut diff --git a/src/main/cobol/RETURNCODE.CBL b/src/main/cobol/RETURNCODE.CBL new file mode 100644 index 00000000..52bd360b --- /dev/null +++ b/src/main/cobol/RETURNCODE.CBL @@ -0,0 +1,21 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. RETURNCODE. + /**************************************************************** + * Program to exercise different mock statements and edge cases. + ***************************************************************** + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 FILLER. + 05 VALUE-1 PIC X(80). + 05 VALUE-2 PIC X(80). + + PROCEDURE DIVISION. + + 000-MAKE-CALL. + MOVE "arg1" to VALUE-1 + MOVE "arg2" to VALUE-2 + CALL 'PROG1' + . \ No newline at end of file diff --git a/src/test/cobol/RETURNCODE/ReturnCode.cut b/src/test/cobol/RETURNCODE/ReturnCode.cut new file mode 100644 index 00000000..510c814b --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode.cut @@ -0,0 +1,16 @@ + TestSuite "Test Return Code" + + TestCase "Return code should be 0" + MOCK CALL 'PROG1' + MOVE "Exit with return code 0" TO VALUE-1 + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 0" + + TestCase "Return code should be 4" + MOCK CALL 'PROG1' + MOVE "Exit with return code 4" TO VALUE-1 + GOBACK. + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 4" From dd774bf75efea1b598b99608e559659a4ee57fe0 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 6 Jul 2023 23:23:49 +0800 Subject: [PATCH 29/30] add tests Signed-off-by: issacto --- src/test/cobol/RETURNCODE/ReturnCode-0.cut | 8 ++++++++ src/test/cobol/RETURNCODE/ReturnCode-4.cut | 9 +++++++++ src/test/cobol/RETURNCODE/ReturnCode.cut | 16 ---------------- 3 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 src/test/cobol/RETURNCODE/ReturnCode-0.cut create mode 100644 src/test/cobol/RETURNCODE/ReturnCode-4.cut delete mode 100644 src/test/cobol/RETURNCODE/ReturnCode.cut diff --git a/src/test/cobol/RETURNCODE/ReturnCode-0.cut b/src/test/cobol/RETURNCODE/ReturnCode-0.cut new file mode 100644 index 00000000..ccc022de --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode-0.cut @@ -0,0 +1,8 @@ + TestSuite "Test Return Code without GOBACK in MOCK " + + TestCase "Return code should be 0" + MOCK CALL 'PROG1' + MOVE "Exit with return code 0" TO VALUE-1 + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 0" \ No newline at end of file diff --git a/src/test/cobol/RETURNCODE/ReturnCode-4.cut b/src/test/cobol/RETURNCODE/ReturnCode-4.cut new file mode 100644 index 00000000..e1abb978 --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode-4.cut @@ -0,0 +1,9 @@ + TestSuite "Test Return Code with GOBACK in MOCK " + + TestCase "Return code should be 4 (Should fail) " + MOCK CALL 'PROG1' + MOVE "Exit with return code 4" TO VALUE-1 + GOBACK. + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 4" diff --git a/src/test/cobol/RETURNCODE/ReturnCode.cut b/src/test/cobol/RETURNCODE/ReturnCode.cut deleted file mode 100644 index 510c814b..00000000 --- a/src/test/cobol/RETURNCODE/ReturnCode.cut +++ /dev/null @@ -1,16 +0,0 @@ - TestSuite "Test Return Code" - - TestCase "Return code should be 0" - MOCK CALL 'PROG1' - MOVE "Exit with return code 0" TO VALUE-1 - END-MOCK - PERFORM 000-MAKE-CALL - EXPECT VALUE-1 TO BE "Exit with return code 0" - - TestCase "Return code should be 4" - MOCK CALL 'PROG1' - MOVE "Exit with return code 4" TO VALUE-1 - GOBACK. - END-MOCK - PERFORM 000-MAKE-CALL - EXPECT VALUE-1 TO BE "Exit with return code 4" From fb3da53628655499609b5a73af85cefa9e2f82eb Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 7 Jul 2023 12:06:53 +0800 Subject: [PATCH 30/30] add test cases Signed-off-by: issacto --- src/test/cobol/MOCKTEST/MockCallTest.cut | 40 ++++++++++++++ .../cobolcheck/MockIT.java | 52 +++++++++++++++++++ .../cobolcheck/MockingTest.java | 2 +- .../cobolcheck/TestSuiteErrorLogTest.java | 49 +++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletion(-) diff --git a/src/test/cobol/MOCKTEST/MockCallTest.cut b/src/test/cobol/MOCKTEST/MockCallTest.cut index 569f8e01..7a2df853 100644 --- a/src/test/cobol/MOCKTEST/MockCallTest.cut +++ b/src/test/cobol/MOCKTEST/MockCallTest.cut @@ -67,6 +67,46 @@ BY VALUE VALUE-2, VALUE-3 HAPPENED 2 TIMES + + TestCase "Call mock with content reference for arguments with one comma work" + MOCK CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2 + VALUE-3 + MOVE "content" TO VALUE-1 + MOVE "value" TO VALUE-2 + MOVE "reference" TO VALUE-3 + END-MOCK + PERFORM 800-MAKE-CALL + EXPECT VALUE-1 TO BE "content" + EXPECT VALUE-2 TO BE "value" + EXPECT VALUE-3 TO BE "reference" + VERIFY CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + HAPPENED 2 TIMES + + + TestCase "Call mock with content reference for arguments without comma work" + MOCK CALL 'PROG3' USING + BY CONTENT VALUE-1 + BY VALUE VALUE-2 + VALUE-3 + MOVE "content" TO VALUE-1 + MOVE "value" TO VALUE-2 + MOVE "reference" TO VALUE-3 + END-MOCK + PERFORM 800-MAKE-CALL + EXPECT VALUE-1 TO BE "content" + EXPECT VALUE-2 TO BE "value" + EXPECT VALUE-3 TO BE "reference" + VERIFY CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + HAPPENED 2 TIMES + TestCase "Paragraph mock is called and call mock is ignored" MOCK CALL 'PROG3' USING diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 98c2159c..e6032d05 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -206,6 +206,58 @@ public void it_inserts_call_mocks_correctly() throws IOException { assertEquals(getTrimmedList(expected4), actual); } + @Test + public void it_inserts_call_mocks_without_commas_correctly() throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " 000-START SECTION."; + String s4 = " MOVE \"Value1\" to VALUE-1"; + String s5 = " EXIT SECTION."; + String s6 = " 100-WELCOME SECTION."; + String s7 = " CALL 'prog1' USING"; + String s8 = " BY CONTENT VALUE-1, VALUE-2."; + String s9 = " MOVE \"Hello\" to VALUE-1."; + String s10 = " 200-GOODBYE SECTION."; + String s11 = " MOVE \"Bye\" to VALUE-1"; + String s12 = " CALL bogus USING VALUE-1"; + String s13 = ""; + String s14 = " CALL 'prog2' USING VALUE-1"; + String s15 = " CALL 'prog2' USING VALUE-1."; + String s16 = " ."; + String s17 = " * Ending with comment"; + + String t1 = " TestSuite \"Mocking tests\""; + String t2 = " MOCK SECTION 100-WELCOME"; + String t3 = " MOVE \"mock\" TO VALUE-1"; + String t4 = " END-MOCK"; + String t5 = " MOCK CALL 'prog2' USING VALUE-1"; + String t6 = " MOVE \"prog2\" TO VALUE-1"; + String t7 = " END-MOCK"; + String t8 = " TestCase \"Local mock overwrites global mock\""; + String t9 = " MOCK SECTION 200-GOODBYE"; + String t10 = " MOVE \"Goodbye\" TO VALUE-1"; + String t11 = " END-MOCK"; + String t12 = " PERFORM 200-GOODBYE"; + String t13 = " Expect VALUE-1 to be \"Goodbye\""; + String t14 = " TestCase \"Simply a test\""; + String t15 = " MOCK SECTION 000-START"; + String t16 = " END-MOCK"; + String t17 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2"; + String t18 = " END-MOCK"; + String t19 = " MOCK SECTION 200-GOODBYE"; + String t20 = " END-MOCK"; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, + s11, s12, s13, s14, s15, s16, s17, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, + t12, t13, t14, t15, t16, t17, t18, t19, t20, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + assertEquals(getTrimmedList(expected4), actual); + } + private List getTrimmedList(String text){ String[] lines = text.split(Constants.NEWLINE); List result = new ArrayList<>(); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index d0eb42fb..5f2a9fb8 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -296,7 +296,7 @@ public void call_mock_gets_correct_arguments() throws IOException { } @Test - public void call_mock_gets_correct_arguments_with_commas() throws IOException { + public void call_mock_gets_correct_arguments_without_commas() throws IOException { String str1 = " TESTSUITE \"Name of test suite\""; String str2 = " TESTCASE \"Name of test case\""; String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2 VALUE-3"; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 6fee65e1..70eccf56 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -504,6 +504,55 @@ public void it_catches_unexpected_keyword_after_verify_() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_after_verify_without_commas() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void it_catches_unexpected_keyword_after_verify_without_commas_() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE);