diff --git a/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionControlExecution.java b/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionControlExecution.java index d18603e6c..f5ad3b499 100644 --- a/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionControlExecution.java +++ b/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionControlExecution.java @@ -88,6 +88,7 @@ public class TestCaseStepActionControlExecution { * */ private TestCaseStepActionExecution testCaseStepActionExecution; + private TestCaseStepActionControl testCaseStepActionControl; private List fileList; // Host the list of the files stored at control level private MessageEvent controlResultMessage; private MessageGeneral executionResultMessage; @@ -415,6 +416,14 @@ public void setValue3Init(String value3Init) { this.value3Init = value3Init; } + public TestCaseStepActionControl getTestCaseStepActionControl() { + return testCaseStepActionControl; + } + + public void setTestCaseStepActionControl(TestCaseStepActionControl testCaseStepActionControl) { + this.testCaseStepActionControl = testCaseStepActionControl; + } + /** * Convert the current TestCaseStepActionControlExecution into JSON format * Note that if withChilds and withParents are both set to true, only the diff --git a/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionExecution.java b/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionExecution.java index 9f541c558..5c85ff477 100644 --- a/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionExecution.java +++ b/source/src/main/java/org/cerberus/core/crud/entity/TestCaseStepActionExecution.java @@ -451,7 +451,7 @@ public void addTestCaseStepActionExecutionList(List evaluateCondition_ifStepStatusOK(String conditionVal try { - String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)).getReturnCode(); + String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)).getReturnCode(); - if (status.equals("OK")) { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_STEPEXECUTIONOK); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - ); - } else { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_STEPEXECUTIONOK); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - ); - } + if (status.equals("OK")) { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_STEPEXECUTIONOK); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + ); + } else { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_STEPEXECUTIONOK); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + ); + } } catch (Exception ex){ mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FAILED_STEPEXECUTIONOK); @@ -1124,16 +1126,23 @@ private AnswerItem evaluateCondition_ifStepStatusNE(String conditionVal AnswerItem ans = new AnswerItem<>(); MessageEvent mes; - String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)).getReturnCode(); + try { + String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)).getReturnCode(); - if (status.equals("NE")) { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_STEPEXECUTIONNE); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - ); - } else { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_STEPEXECUTIONNE); + if (status.equals("NE")) { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_STEPEXECUTIONNE); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + ); + } else { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_STEPEXECUTIONNE); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + ); + } + } catch (Exception ex){ + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FAILED_STEPEXECUTIONNE); mes.setDescription(mes.getDescription() .replace("%STR1%", conditionValue1) ); @@ -1147,19 +1156,27 @@ private AnswerItem evaluateCondition_ifActionStatusOK(String conditionV AnswerItem ans = new AnswerItem<>(); MessageEvent mes; - String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) - .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) - .getReturnCode(); + try { + String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) + .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) + .getReturnCode(); - if (status.equals("OK")) { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_ACTIONEXECUTIONOK); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - .replace("%STR2%", conditionValue2) - ); - } else { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_ACTIONEXECUTIONOK); + if (status.equals("OK")) { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_ACTIONEXECUTIONOK); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + ); + } else { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_ACTIONEXECUTIONOK); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + ); + } + } catch (Exception ex){ + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FAILED_ACTIONEXECUTIONOK); mes.setDescription(mes.getDescription() .replace("%STR1%", conditionValue1) .replace("%STR2%", conditionValue2) @@ -1174,19 +1191,27 @@ private AnswerItem evaluateCondition_ifActionStatusNE(String conditionV AnswerItem ans = new AnswerItem<>(); MessageEvent mes; - String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) - .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) - .getReturnCode(); + try { + String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) + .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) + .getReturnCode(); - if (status.equals("NE")) { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_ACTIONEXECUTIONNE); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - .replace("%STR2%", conditionValue2) - ); - } else { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_ACTIONEXECUTIONNE); + if (status.equals("NE")) { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_ACTIONEXECUTIONNE); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + ); + } else { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_ACTIONEXECUTIONNE); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + ); + } + } catch (Exception ex){ + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FAILED_ACTIONEXECUTIONNE); mes.setDescription(mes.getDescription() .replace("%STR1%", conditionValue1) .replace("%STR2%", conditionValue2) @@ -1201,20 +1226,29 @@ private AnswerItem evaluateCondition_ifControlStatusOK(String condition AnswerItem ans = new AnswerItem<>(); MessageEvent mes; - String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) - .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) - .getTestCaseStepActionControlExecutionByControlId(Integer.valueOf(conditionValue3)) - .getReturnCode(); - - if (status.equals("OK")) { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_CONTROLEXECUTIONOK); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - .replace("%STR2%", conditionValue2) - .replace("%STR3%", conditionValue3) - ); - } else { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_CONTROLEXECUTIONOK); + try { + String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) + .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) + .getTestCaseStepActionControlExecutionByControlId(Integer.valueOf(conditionValue3)) + .getReturnCode(); + + if (status.equals("OK")) { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_CONTROLEXECUTIONOK); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + .replace("%STR3%", conditionValue3) + ); + } else { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_CONTROLEXECUTIONOK); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + .replace("%STR3%", conditionValue3) + ); + } + } catch (Exception ex){ + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FAILED_CONTROLEXECUTIONOK); mes.setDescription(mes.getDescription() .replace("%STR1%", conditionValue1) .replace("%STR2%", conditionValue2) @@ -1230,21 +1264,30 @@ private AnswerItem evaluateCondition_ifControlStatusNE(String condition AnswerItem ans = new AnswerItem<>(); MessageEvent mes; - String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) - .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) - .getTestCaseStepActionControlExecutionByControlId(Integer.valueOf(conditionValue3)) - .getReturnCode(); - - - if (status.equals("NE")) { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_CONTROLEXECUTIONNE); - mes.setDescription(mes.getDescription() - .replace("%STR1%", conditionValue1) - .replace("%STR2%", conditionValue2) - .replace("%STR3%", conditionValue3) - ); - } else { - mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_CONTROLEXECUTIONNE); + try { + String status = execution.getTestCaseStepExecutionByStepId(Integer.valueOf(conditionValue1)) + .getTestCaseStepActionExecutionByActionId(Integer.valueOf(conditionValue2)) + .getTestCaseStepActionControlExecutionByControlId(Integer.valueOf(conditionValue3)) + .getReturnCode(); + + + if (status.equals("NE")) { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_TRUE_CONTROLEXECUTIONNE); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + .replace("%STR3%", conditionValue3) + ); + } else { + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FALSE_CONTROLEXECUTIONNE); + mes.setDescription(mes.getDescription() + .replace("%STR1%", conditionValue1) + .replace("%STR2%", conditionValue2) + .replace("%STR3%", conditionValue3) + ); + } + } catch (Exception ex){ + mes = new MessageEvent(MessageEventEnum.CONDITIONEVAL_FAILED_CONTROLEXECUTIONNE); mes.setDescription(mes.getDescription() .replace("%STR1%", conditionValue1) .replace("%STR2%", conditionValue2) diff --git a/source/src/main/java/org/cerberus/core/engine/execution/impl/ExecutionRunService.java b/source/src/main/java/org/cerberus/core/engine/execution/impl/ExecutionRunService.java index c6df8a53b..f9a83a609 100644 --- a/source/src/main/java/org/cerberus/core/engine/execution/impl/ExecutionRunService.java +++ b/source/src/main/java/org/cerberus/core/engine/execution/impl/ExecutionRunService.java @@ -1305,6 +1305,7 @@ private TestCaseStepActionExecution executeAction(TestCaseStepActionExecution ac controlExecution.setDoScreenshotAfter(control.isDoScreenshotAfter()); controlExecution.setWaitBefore(control.getWaitBefore()); controlExecution.setWaitAfter(control.getWaitAfter()); + controlExecution.setTestCaseStepActionControl(control); this.testCaseStepActionControlExecutionService.insertTestCaseStepActionControlExecution(controlExecution, execution.getSecrets()); diff --git a/source/src/main/java/org/cerberus/core/enums/MessageEventEnum.java b/source/src/main/java/org/cerberus/core/enums/MessageEventEnum.java index 89722b855..303936d71 100644 --- a/source/src/main/java/org/cerberus/core/enums/MessageEventEnum.java +++ b/source/src/main/java/org/cerberus/core/enums/MessageEventEnum.java @@ -505,11 +505,11 @@ public enum MessageEventEnum { CONDITIONEVAL_FAILED_NOTSUPPORTED_FOR_MESSAGETYPE(1220, "FA", "Message type %TYPE% not supported for condition '%CONDITION%'.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), CONDITIONEVAL_FAILED_IFNUMERIC_GENERICCONVERSIONERROR(1230, "FA", "Cannot convert %STRINGVALUE% to numeric.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), CONDITIONEVAL_FAILED_STEPEXECUTIONOK(1210, "FA", "Mandatory parameter '%STR1%' is missing or in a bad format (integer expected), or expected step doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), - CONDITIONEVAL_FAILED_ACTIONEXECUTIONOK(1210, "FA", "Mandatory parameter '%STR1%' is missing or in a bad format (integer expected), or expected step doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), - CONDITIONEVAL_FAILED_CONTROLEXECUTIONOK(1210, "FA", "Mandatory parameter '%STR1%' or '%STR2%' is missing or in a bad format (integer expected), or expected step/action doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), + CONDITIONEVAL_FAILED_ACTIONEXECUTIONOK(1210, "FA", "Mandatory parameter '%STR1%' or '%STR2%' is missing or in a bad format (integer expected), or expected step doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), + CONDITIONEVAL_FAILED_CONTROLEXECUTIONOK(1210, "FA", "Mandatory parameter '%STR1%', '%STR2%' or '%STR3%' is missing or in a bad format (integer expected), or expected step/action doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), CONDITIONEVAL_FAILED_STEPEXECUTIONNE(1210, "FA", "Mandatory parameter '%STR1%' is missing or in a bad format (integer expected), or expected step doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), - CONDITIONEVAL_FAILED_ACTIONEXECUTIONNE(1210, "FA", "Mandatory parameter '%STR1%' is missing or in a bad format (integer expected), or expected step doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), - CONDITIONEVAL_FAILED_CONTROLEXECUTIONNE(1210, "FA", "Mandatory parameter '%STR1%' or '%STR2%' is missing or in a bad format (integer expected), or expected step/action doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), + CONDITIONEVAL_FAILED_ACTIONEXECUTIONNE(1210, "FA", "Mandatory parameter '%STR1%' or '%STR2%' is missing or in a bad format (integer expected), or expected step doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), + CONDITIONEVAL_FAILED_CONTROLEXECUTIONNE(1210, "FA", "Mandatory parameter '%STR1%', '%STR2%' or '%STR3%' is missing or in a bad format (integer expected), or expected step/action doesn't exist.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), CONDITIONEVAL_FAILED_SELENIUM_CONNECTIVITY(1230, "FA", "Lost connection to Selenium Server! Detailed error : %ERROR%.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), CONDITIONEVAL_FAILED_GENERIC(1230, "FA", "Failed to evaluate condition. Detailed error : %ERROR%.", false, false, false, MessageGeneralEnum.EXECUTION_FA_CONDITION), CONDITIONEVAL_FAILED_TEXTINELEMENT(1240, "FA", "%ERRORMESS%", true, true, true, MessageGeneralEnum.EXECUTION_KO),