Best Cerberus-source code snippet using org.cerberus.crud.entity.TestCaseExecutionData.getPropertyResultMessage
Source:PropertyService.java
...188 }189 /*190 * If not already calculated, or calculateProperty, then calculate it and insert or update it.191 */192 if (MessageEventEnum.PROPERTY_PENDING.equals(tcExeData.getPropertyResultMessage().getSource())) {193 calculateProperty(tcExeData, tCExecution, testCaseStepActionExecution, eachTccp, forceCalculation);194 msg = tcExeData.getPropertyResultMessage();195 //saves the result 196 try {197 testCaseExecutionDataService.convert(testCaseExecutionDataService.save(tcExeData));198 /**199 * Add TestCaseExecutionData in TestCaseExecutionData List200 * of the TestCaseExecution201 */202 LOG.debug("Adding into Execution data list. Property : '" + tcExeData.getProperty() + "' Index : '" + String.valueOf(tcExeData.getIndex()) + "' Value : '" + tcExeData.getValue() + "'");203 tCExecution.getTestCaseExecutionDataMap().put(tcExeData.getProperty(), tcExeData);204 if (tcExeData.getDataLibRawData() != null) { // If the property is a TestDataLib, we same all rows retreived in order to support nature such as NOTINUSe or RANDOMNEW.205 for (int i = 1; i < (tcExeData.getDataLibRawData().size()); i++) {206 now = new Date().getTime();207 TestCaseExecutionData tcedS = factoryTestCaseExecutionData.create(tcExeData.getId(), tcExeData.getProperty(), (i + 1),208 tcExeData.getDescription(), tcExeData.getDataLibRawData().get(i).get(""), tcExeData.getType(), "", "",209 tcExeData.getRC(), "", now, now, now, now, null, 0, 0, "", "", "", "", "", 0, "", tcExeData.getSystem(), tcExeData.getEnvironment(), tcExeData.getCountry(), tcExeData.getDataLib(), null, "N");210 testCaseExecutionDataService.convert(testCaseExecutionDataService.save(tcedS));211 }212 }213 } catch (CerberusException cex) {214 LOG.error(cex.getMessage(), cex);215 }216 }217 /**218 * After calculation, replace properties by value calculated219 */220 stringToDecode = decodeStringWithAlreadyCalculatedProperties(stringToDecode, tCExecution);221 if (LOG.isDebugEnabled()) {222 LOG.debug("Property " + eachTccp.getProperty() + " calculated with Value = " + tcExeData.getValue() + ", Value1 = " + tcExeData.getValue1() + ", Value2 = " + tcExeData.getValue2());223 }224 /**225 * Log TestCaseExecutionData226 */227 if (tCExecution.getVerbose() > 0) {228 LOG.info(tcExeData.toJson(false, true));229 }230 }231 if (LOG.isDebugEnabled()) {232 LOG.debug("Finished to decode String (property) : '" + stringToDecodeInit + "' to :'" + stringToDecode + "'");233 }234 answer.setResultMessage(msg);235 answer.setItem(stringToDecode);236 return answer;237 }238 /**239 * Auxiliary method that returns the execution data for a property.240 *241 * @param dataList list of execution data242 * @param eachTccp property to be calculated243 * @param forceCalculation indicates whether a property must be244 * re-calculated if it was already computed in previous steps245 * @param tecd execution data for the property246 * @return the updated execution data for the property247 */248 private TestCaseExecutionData getExecutionDataFromList(TreeMap<String, TestCaseExecutionData> hashTemp1, TestCaseCountryProperties eachTccp, boolean forceCalculation, TestCaseExecutionData tecd) {249 LOG.debug("Searching " + eachTccp.getProperty() + " Into list of " + hashTemp1.size());250 try {251 if (hashTemp1.containsKey(eachTccp.getProperty())) {252 if (forceCalculation) {253 LOG.debug("Property has already been calculated but forcing new calculation by removing it : " + hashTemp1.get(eachTccp.getProperty()));254 hashTemp1.remove(eachTccp.getProperty());255 return tecd;256 } else {257 LOG.debug("Property has already been calculated : " + hashTemp1.get(eachTccp.getProperty()));258 return hashTemp1.get(eachTccp.getProperty());259 }260 } else {261 LOG.debug("Property was never calculated.");262 return tecd;263 }264 } catch (Exception ex) {265 LOG.error("Exception catched inside getExecutionDataFromList : " + ex);266 }267 return tecd;268 }269 /**270 * Method that takes the potencial @param property, finds it (or not if it271 * is not a existing property) inside the existing property list @param272 * propertiesOfTestcase and gets the list of all other properties required273 * (contained inside value1 or value2).274 *275 * @param country country used to filter property from propertiesOfTestcase276 * @param property property to be calculated277 * @param crossedProperties List of previously found properties.278 * @param propertiesOfTestcase List of properties defined from the testcase.279 * @return list of TestCaseCountryProperties that are included inside the280 * definition of the @param property281 */282 private List<TestCaseCountryProperties> getListOfPropertiesLinkedToProperty(String country, String property, List<String> crossedProperties,283 List<TestCaseCountryProperties> propertiesOfTestcase) {284 List<TestCaseCountryProperties> result = new ArrayList();285 TestCaseCountryProperties testCaseCountryProperty = null;286 /*287 * Check if property is not already known (recursive case).288 */289 if (crossedProperties.contains(property)) {290 return result;291 }292 crossedProperties.add(property);293 /*294 * Check if property is defined for this testcase295 */296 AnswerItem ansSearch = findMatchingTestCaseCountryProperty(property, country, propertiesOfTestcase);297 testCaseCountryProperty = (TestCaseCountryProperties) ansSearch.getItem();298 if (testCaseCountryProperty == null) {299 return result;300 }301 /* 302 * Check if property value1 and value2 contains internal properties303 */304 List<String> allProperties = new ArrayList();305 // Value1 treatment306 List<String> propertiesValue1 = new ArrayList();307 //check the properties specified in the test308 for (String propNameFromValue1 : this.getPropertiesListFromString(testCaseCountryProperty.getValue1())) {309 for (TestCaseCountryProperties pr : propertiesOfTestcase) {310 if (pr.getProperty().equals(propNameFromValue1)) {311 propertiesValue1.add(propNameFromValue1);312 break;313 }314 }315 }316 allProperties.addAll(propertiesValue1);317 // Value2 treatment :318 List<String> propertiesValue2 = new ArrayList();319 //check the properties specified in the test320 for (String propNameFromValue2 : this.getPropertiesListFromString(testCaseCountryProperty.getValue2())) {321 for (TestCaseCountryProperties pr : propertiesOfTestcase) {322 if (pr.getProperty().equals(propNameFromValue2)) {323 propertiesValue2.add(propNameFromValue2);324 break;325 }326 }327 }328 allProperties.addAll(propertiesValue2);329 for (String internalProperty : allProperties) {330 result.addAll(getListOfPropertiesLinkedToProperty(country, internalProperty, crossedProperties, propertiesOfTestcase));331 }332 result.add(testCaseCountryProperty);333 return result;334 }335 private String decodeStringWithAlreadyCalculatedProperties(String stringToReplace, TestCaseExecution tCExecution) {336 String variableValue = "";337 String variableString1 = "";338 String variableString2 = "";339 TestCaseExecutionData tced;340 for (String key1 : tCExecution.getTestCaseExecutionDataMap().keySet()) {341 tced = tCExecution.getTestCaseExecutionDataMap().get(key1);342 if ((tced.getType() != null) && (tced.getType().equals(TestCaseCountryProperties.TYPE_GETFROMDATALIB))) { // Type could be null in case property do not exist.343 /* Replacement in case of TestDataLib */344 // Key value of the DataLib.345 if (tced.getValue() != null) {346 stringToReplace = stringToReplace.replace("%property." + tced.getProperty() + "%", tced.getValue());347 stringToReplace = stringToReplace.replace("%" + tced.getProperty() + "%", tced.getValue());348 }349 // For each subdata of the getFromDataLib property, we try to replace with PROPERTY(SUBDATA).350 if (!(tced.getDataLibRawData() == null)) {351 int ind = 0;352 for (HashMap<String, String> dataRow : tced.getDataLibRawData()) { // We loop every row result.353 for (String key : dataRow.keySet()) { // We loop every subdata354 if (dataRow.get(key) != null) {355 variableValue = dataRow.get(key);356 variableString1 = tced.getProperty() + "(" + (ind + 1) + ")" + "(" + key + ")";357 stringToReplace = stringToReplace.replace("%property." + variableString1 + "%", variableValue);358 stringToReplace = stringToReplace.replace("%" + variableString1 + "%", variableValue);359 variableString2 = tced.getProperty() + "." + (ind + 1) + "." + key;360 stringToReplace = stringToReplace.replace("%property." + variableString2 + "%", variableValue);361 stringToReplace = stringToReplace.replace("%" + variableString2 + "%", variableValue);362 if (key.equals("")) { // If subdata is empty we can omit the () or .363 variableString1 = tced.getProperty() + "(" + (ind + 1) + ")";364 stringToReplace = stringToReplace.replace("%property." + variableString1 + "%", variableValue);365 stringToReplace = stringToReplace.replace("%" + variableString1 + "%", variableValue);366 variableString2 = tced.getProperty() + "." + (ind + 1);367 stringToReplace = stringToReplace.replace("%property." + variableString2 + "%", variableValue);368 stringToReplace = stringToReplace.replace("%" + variableString2 + "%", variableValue);369 }370 if (ind == 0) { // Dimention of the data is not mandatory for the 1st row.371 variableString1 = tced.getProperty() + "(" + key + ")";372 stringToReplace = stringToReplace.replace("%property." + variableString1 + "%", variableValue);373 stringToReplace = stringToReplace.replace("%" + variableString1 + "%", variableValue);374 variableString2 = tced.getProperty() + "." + key;375 stringToReplace = stringToReplace.replace("%property." + variableString2 + "%", variableValue);376 stringToReplace = stringToReplace.replace("%" + variableString2 + "%", variableValue);377 }378 }379 }380 ind++;381 }382 }383 } else if (tced.getValue() != null) {384 /* Replacement in case of normal PROPERTY */385 stringToReplace = stringToReplace.replace("%property." + tced.getProperty() + "%", tced.getValue());386 stringToReplace = stringToReplace.replace("%" + tced.getProperty() + "%", tced.getValue());387 }388 }389 return stringToReplace;390 }391 /**392 * Gets all properties names contained into the given {@link String}393 *394 * <p>395 * A property is defined by including its name between two '%' character.396 * </p>397 *398 * @param str the {@link String} to get all properties399 * @param variableType400 * @return a list of properties contained into the given {@link String}401 */402 private List<String> getPropertiesListFromString(String str) {403 List<String> properties = new ArrayList<String>();404 LOG.debug("Starting to guess properties from string : " + str);405 if (str == null) {406 LOG.debug("Stoping to guess properties - Empty String ");407 return properties;408 }409 String[] text1 = str.split("%");410 int i = 0;411 for (String rawProperty : text1) {412 if (((i > 0) || (str.startsWith("%"))) && ((i < (text1.length - 1)) || str.endsWith("%"))) { // First and last string from split is not to be considered.413 // Removes "property." string.414 rawProperty = rawProperty.replaceFirst("^property\\.", "");415 // Removes the variable part of the property eg : (subdata)416 String[] ramProp1 = rawProperty.split("\\(");417 // Removes the variable part of the property eg : .subdata418 String[] ramProp2 = ramProp1[0].split("\\.");419 if (!(StringUtil.isNullOrEmpty(ramProp2[0].trim())) // Avoid getting empty Property names.420 && ramProp2[0].trim().length() <= TestCaseCountryProperties.MAX_PROPERTY_LENGTH // Properties cannot be bigger than n caracters.421 && !ramProp2[0].trim().contains("\n")) { // Properties cannot contain \n.422 properties.add(ramProp2[0].trim());423 LOG.debug("Adding string to result " + ramProp2[0].trim());424 } else {425 LOG.debug("Discarding string (empty or too big or contains cariage return).");426 }427 // Avoid getting empty Property names.428 } else {429 LOG.debug("Discarding string (first or last split).");430 }431 i++;432 }433 LOG.debug("Stopping to guess properties - Finished.");434 return properties;435 }436 /**437 * Auxiliary method that verifies if a property is defined in the scope of438 * the test case.439 *440 * @param property - property name441 * @param country - country were the property was implemented442 * @param propertieOfTestcase - list of properties defined for the test case443 * @return an AnswerItem that contains the property in case of success, and444 * null otherwise. also it returns a message indicating error or success.445 */446 private AnswerItem<TestCaseCountryProperties> findMatchingTestCaseCountryProperty(String property, String country, List<TestCaseCountryProperties> propertieOfTestcase) {447 AnswerItem<TestCaseCountryProperties> item = new AnswerItem<TestCaseCountryProperties>();448 boolean propertyDefined = false;449 item.setResultMessage(new MessageEvent(MessageEventEnum.PROPERTY_SUCCESS));450 TestCaseCountryProperties testCaseCountryProperty = null;451 //searches for properties that match the propertyname (even if they use the getFromDataLib syntax)452 for (TestCaseCountryProperties tccp : propertieOfTestcase) {453 if (tccp.getProperty().equals(property)) {454 //property is defined455 propertyDefined = true;456 //check if is defined for country457 if (tccp.getCountry().equals(country)) {458 //if is a sub data access then we create a auxiliary property459 testCaseCountryProperty = tccp;460 if (LOG.isDebugEnabled()) {461 LOG.debug("Property found : " + tccp);462 }463 break;464 }465 }466 }467 /**468 * If property defined on another Country, set a specific message. If469 * property is not defined at all, trigger the end of the testcase.470 */471 if (testCaseCountryProperty == null) {472 MessageEvent msg = new MessageEvent(MessageEventEnum.PROPERTY_FAILED_NO_PROPERTY_DEFINITION);473 if (!propertyDefined) {474 msg = new MessageEvent(MessageEventEnum.PROPERTY_FAILED_UNKNOWNPROPERTY);475 }476 msg.setDescription(msg.getDescription().replace("%COUNTRY%", country));477 msg.setDescription(msg.getDescription().replace("%PROP%", property));478 item.setResultMessage(msg);479 if (LOG.isDebugEnabled()) {480 LOG.debug(msg.getDescription());481 }482 }483 item.setItem(testCaseCountryProperty);484 return item;485 }486 @Override487 public void calculateProperty(TestCaseExecutionData testCaseExecutionData, TestCaseExecution tCExecution, TestCaseStepActionExecution testCaseStepActionExecution,488 TestCaseCountryProperties testCaseCountryProperty, boolean forceRecalculation) {489 testCaseExecutionData.setStart(new Date().getTime());490 MessageEvent res;491 String test = tCExecution.getTest();492 String testCase = tCExecution.getTestCase();493 AnswerItem<String> answerDecode = new AnswerItem();494 if (LOG.isDebugEnabled()) {495 LOG.debug("Starting to calculate Property : '" + testCaseCountryProperty.getProperty() + "'");496 }497 // Checking recursive decode.498 if ((tCExecution.getRecursiveAlreadyCalculatedPropertiesList() != null) && (tCExecution.getRecursiveAlreadyCalculatedPropertiesList().contains(testCaseCountryProperty.getProperty()))) {499 res = new MessageEvent(MessageEventEnum.PROPERTY_FAILED_RECURSIVE);500 res.setDescription(res.getDescription().replace("%PROPERTY%", testCaseCountryProperty.getProperty())501 .replace("%HISTO%", tCExecution.getRecursiveAlreadyCalculatedPropertiesList().toString()));502 testCaseExecutionData.setPropertyResultMessage(res);503 testCaseExecutionData.setEnd(new Date().getTime());504 LOG.debug("Finished to calculate Property (interupted) : '" + testCaseCountryProperty.getProperty() + "' : " + testCaseExecutionData.getPropertyResultMessage().getDescription());505 return;506 }507 if (tCExecution.getRecursiveAlreadyCalculatedPropertiesList() != null) {508 tCExecution.getRecursiveAlreadyCalculatedPropertiesList().add(testCaseCountryProperty.getProperty());509 }510 try {511 // Check if cache activated and cache entry exist.512 int cacheValue = testCaseCountryProperty.getCacheExpire();513 boolean useCache = false;514 AnswerItem<TestCaseExecutionData> answerData = null;515 if (cacheValue > 0) {516 answerData = testCaseExecutionDataService.readLastCacheEntry(tCExecution.getApplicationObj().getSystem(), tCExecution.getEnvironment(), tCExecution.getCountry(), testCaseCountryProperty.getProperty(), cacheValue);517 if (answerData.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode()) && answerData.getItem() != null) {518 useCache = true;519 }520 }521 if (!useCache) {522 /**523 * Decode Property replacing properties encapsulated with %524 */525 if (testCaseCountryProperty.getValue1().contains("%")) {526 answerDecode = variableService.decodeStringCompletly(testCaseCountryProperty.getValue1(), tCExecution, null, false);527 testCaseExecutionData.setValue1((String) answerDecode.getItem());528 if (!(answerDecode.isCodeStringEquals("OK"))) {529 // If anything wrong with the decode --> we stop here with decode message in the property result.530 testCaseExecutionData.setPropertyResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Property Value1"));531 testCaseExecutionData.setEnd(new Date().getTime());532 testCaseExecutionData.setStopExecution(answerDecode.getResultMessage().isStopTest());533 LOG.debug("Finished to calculate Property (interupted) : '" + testCaseCountryProperty.getProperty() + "' : " + testCaseExecutionData.getPropertyResultMessage().getDescription());534 return;535 }536 }537 if (testCaseCountryProperty.getValue2() != null && testCaseCountryProperty.getValue2().contains("%")) {538 answerDecode = variableService.decodeStringCompletly(testCaseCountryProperty.getValue2(), tCExecution, null, false);539 testCaseExecutionData.setValue2((String) answerDecode.getItem());540 if (!(answerDecode.isCodeStringEquals("OK"))) {541 // If anything wrong with the decode --> we stop here with decode message in the property result.542 testCaseExecutionData.setPropertyResultMessage(answerDecode.getResultMessage().resolveDescription("FIELD", "Property Value2"));543 testCaseExecutionData.setEnd(new Date().getTime());544 testCaseExecutionData.setStopExecution(answerDecode.getResultMessage().isStopTest());545 LOG.debug("Finished to calculate Property (interupted) : '" + testCaseCountryProperty.getProperty() + "' : " + testCaseExecutionData.getPropertyResultMessage().getDescription());546 return;547 }548 }549 // cache not activated or no entry exist.550 int execution_count = 0;551 int retries = testCaseCountryProperty.getRetryNb();552 int periodms = testCaseCountryProperty.getRetryPeriod();553 LOG.debug("Init Retries : " + retries + " Period : " + periodms);554 /**555 * Controling that retrynb and retryperiod are correctly feeded.556 * <br>557 * This is to avoid that <br>558 * 1/ retry is greater than cerberus_property_maxretry <br>559 * 2/ total duration of property calculation is longuer than560 * cerberus_property_maxretrytotalduration561 */562 boolean forced_retry = false;563 String forced_retry_message = "";564 if (!(retries == 0)) {565 int maxretry = parameterService.getParameterIntegerByKey("cerberus_property_maxretry", "", 50);566 if (retries > maxretry) {567 retries = maxretry;568 forced_retry = true;569 }570 int maxtotalduration = parameterService.getParameterIntegerByKey("cerberus_property_maxretrytotalduration", "", 1800000);571 if (periodms > maxtotalduration) {572 periodms = maxtotalduration;573 forced_retry = true;574 }575 if (retries * periodms > maxtotalduration) {576 retries = (int) maxtotalduration / periodms;577 forced_retry = true;578 }579 if (forced_retry) {580 forced_retry_message = "WARNING : Forced Retries : " + testCaseCountryProperty.getRetryNb() + "-->" + retries + " and Period : " + testCaseCountryProperty.getRetryPeriod() + "-->" + periodms + " (in order to respect the constrains cerberus_property_maxretry " + maxretry + " & cerberus_property_maxtotalduration " + maxtotalduration + ")";581 LOG.debug("Forced Retries : " + retries + " Period : " + periodms + " in order to respect the constrains cerberus_property_maxretry " + maxretry + " & cerberus_property_maxtotalduration " + maxtotalduration);582 }583 }584 /**585 * Looping on calculating the action until result is OK or reach586 * the max retry.587 */588 while (execution_count <= retries && !(testCaseExecutionData.getPropertyResultMessage().getCodeString().equals("OK"))) {589 LOG.debug("Attempt #" + execution_count + " " + testCaseCountryProperty.getProperty() + " " + testCaseCountryProperty.getValue1());590 if (execution_count >= 1) { // We only wait the period if not on the very first calculation.591 try {592 Thread.sleep(periodms);593 LOG.debug("Attempt #" + execution_count + " " + testCaseCountryProperty.getProperty() + " " + testCaseCountryProperty.getValue1() + " Waiting " + periodms + " ms");594 } catch (InterruptedException ex) {595 LOG.error(ex.toString());596 }597 }598 /**599 * Calculate Property regarding the type600 */601 switch (testCaseCountryProperty.getType()) {602 case TestCaseCountryProperties.TYPE_TEXT:603 testCaseExecutionData = this.property_calculateText(testCaseExecutionData, testCaseCountryProperty, forceRecalculation);604 break;605 case TestCaseCountryProperties.TYPE_GETFROMDATALIB:606 testCaseExecutionData = this.property_getFromDataLib(testCaseExecutionData, tCExecution, testCaseStepActionExecution, testCaseCountryProperty, forceRecalculation);607 break;608 case TestCaseCountryProperties.TYPE_GETFROMSQL:609 testCaseExecutionData = this.property_getFromSql(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);610 break;611 case TestCaseCountryProperties.TYPE_GETFROMHTML:612 testCaseExecutionData = this.property_getFromHtml(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);613 break;614 case TestCaseCountryProperties.TYPE_GETFROMHTMLVISIBLE:615 testCaseExecutionData = this.property_getFromHtmlVisible(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);616 break;617 case TestCaseCountryProperties.TYPE_GETFROMJS:618 testCaseExecutionData = this.property_getFromJS(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);619 break;620 case TestCaseCountryProperties.TYPE_GETATTRIBUTEFROMHTML:621 testCaseExecutionData = this.property_getAttributeFromHtml(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);622 break;623 case TestCaseCountryProperties.TYPE_GETFROMCOOKIE:624 testCaseExecutionData = this.property_getFromCookie(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);625 break;626 case TestCaseCountryProperties.TYPE_GETFROMXML:627 testCaseExecutionData = this.property_getFromXml(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);628 break;629 case TestCaseCountryProperties.TYPE_GETDIFFERENCESFROMXML:630 testCaseExecutionData = this.property_getDifferencesFromXml(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);631 break;632 case TestCaseCountryProperties.TYPE_GETFROMJSON:633 testCaseExecutionData = this.property_getFromJson(testCaseExecutionData, tCExecution, forceRecalculation);634 break;635 case TestCaseCountryProperties.TYPE_GETFROMGROOVY:636 testCaseExecutionData = this.property_getFromGroovy(testCaseExecutionData, tCExecution, testCaseCountryProperty, forceRecalculation);637 break;638 case TestCaseCountryProperties.TYPE_EXECUTESOAPFROMLIB: // DEPRECATED639 testCaseExecutionData = this.property_executeSoapFromLib(testCaseExecutionData, tCExecution, testCaseStepActionExecution, testCaseCountryProperty, forceRecalculation);640 res = testCaseExecutionData.getPropertyResultMessage();641 res.setDescription(MESSAGE_DEPRECATED + " " + res.getDescription());642 testCaseExecutionData.setPropertyResultMessage(res);643 logEventService.createForPrivateCalls("ENGINE", TestCaseCountryProperties.TYPE_EXECUTESOAPFROMLIB, MESSAGE_DEPRECATED + " Deprecated Property triggered by TestCase : ['" + test + "|" + testCase + "']");644 LOG.warn(MESSAGE_DEPRECATED + " Deprecated Property " + TestCaseCountryProperties.TYPE_EXECUTESOAPFROMLIB + " triggered by TestCase : ['" + test + "'|'" + testCase + "']");645 break;646 case TestCaseCountryProperties.TYPE_EXECUTESQLFROMLIB: // DEPRECATED647 testCaseExecutionData = this.property_executeSqlFromLib(testCaseExecutionData, testCaseCountryProperty, tCExecution, forceRecalculation);648 res = testCaseExecutionData.getPropertyResultMessage();649 res.setDescription(MESSAGE_DEPRECATED + " " + res.getDescription());650 testCaseExecutionData.setPropertyResultMessage(res);651 logEventService.createForPrivateCalls("ENGINE", TestCaseCountryProperties.TYPE_EXECUTESQLFROMLIB, MESSAGE_DEPRECATED + " Deprecated Property triggered by TestCase : ['" + test + "|" + testCase + "']");652 LOG.warn(MESSAGE_DEPRECATED + " Deprecated Property " + TestCaseCountryProperties.TYPE_EXECUTESQLFROMLIB + " triggered by TestCase : ['" + test + "'|'" + testCase + "']");653 break;654 default:655 res = new MessageEvent(MessageEventEnum.PROPERTY_FAILED_UNKNOWNPROPERTY);656 res.setDescription(res.getDescription().replace("%PROPERTY%", testCaseCountryProperty.getType()));657 testCaseExecutionData.setPropertyResultMessage(res);658 }659 execution_count++;660 }661 if (execution_count >= 2) { // If there were at least 1 retry, we notify it in the result message.662 res = testCaseExecutionData.getPropertyResultMessage();663 res.setDescription("Retried " + (execution_count - 1) + " time(s) with " + periodms + "ms period - " + res.getDescription());664 testCaseExecutionData.setPropertyResultMessage(res);665 }666 if (forced_retry) { // If the retry and period parameter was changed, we notify it in the result message.667 res = testCaseExecutionData.getPropertyResultMessage();668 res.setDescription(forced_retry_message + " - " + res.getDescription());669 testCaseExecutionData.setPropertyResultMessage(res);670 }671 } else {672 // cache activated and entry exist. We set the current value with cache entry data and notify the result from the messsage.673 TestCaseExecutionData testCaseExecutionDataFromCache = (TestCaseExecutionData) answerData.getItem();674 testCaseExecutionData.setFromCache("Y");675 testCaseExecutionData.setDataLib(testCaseExecutionDataFromCache.getDataLib());676 testCaseExecutionData.setValue(testCaseExecutionDataFromCache.getValue());677 testCaseExecutionData.setJsonResult(testCaseExecutionDataFromCache.getJsonResult());678 DateFormat df = new SimpleDateFormat(DateUtil.DATE_FORMAT_DISPLAY);679 res = new MessageEvent(MessageEventEnum.PROPERTY_SUCCESS_FROMCACHE).resolveDescription("ID", String.valueOf(testCaseExecutionDataFromCache.getId())).resolveDescription("DATE", df.format(testCaseExecutionDataFromCache.getStart()));680 testCaseExecutionData.setPropertyResultMessage(res);681 if (!StringUtil.isNullOrEmpty(testCaseExecutionDataFromCache.getJsonResult())) {...
getPropertyResultMessage
Using AI Code Generation
1import org.cerberus.crud.entity.TestCaseExecutionData2def tcexdata = new TestCaseExecutionData()3tcexdata.setPropertyResultMessage("hello")4def result = tcexdata.getPropertyResultMessage()5import org.cerberus.crud.entity.TestCaseExecutionData6def tcexdata = new TestCaseExecutionData()7tcexdata.setPropertyResultMessage("hello")8def result = tcexdata.getPropertyResultMessage()
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!