How to use processRequest method of org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag class

Best Cerberus-source code snippet using org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag.processRequest

Source:ReadTestCaseExecutionByTag.java Github

copy

Full Screen

...82 * @param response servlet response83 * @throws ServletException if a servlet-specific error occurs84 * @throws IOException if an I/O error occurs85 */86 protected void processRequest(HttpServletRequest request, HttpServletResponse response)87 throws ServletException, IOException {88 // Calling Servlet Transversal Util.89 ServletUtil.servletStart(request);90 ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());91 response.setContentType("application/json");92 response.setCharacterEncoding("utf8");93 String echo = request.getParameter("sEcho");94 AnswerItem answer = new AnswerItem(new MessageEvent(MessageEventEnum.DATA_OPERATION_OK));95 testCaseExecutionService = appContext.getBean(ITestCaseExecutionService.class);96 tagService = appContext.getBean(ITagService.class);97 testCaseExecutionInQueueService = appContext.getBean(ITestCaseExecutionQueueService.class);98 try {99 // Data/Filter Parameters.100 String Tag = ParameterParserUtil.parseStringParam(request.getParameter("Tag"), "");101 List<String> outputReport = ParameterParserUtil.parseListParamAndDecode(request.getParameterValues("outputReport"), new ArrayList(), "UTF-8");102 JSONObject jsonResponse = new JSONObject();103 JSONObject statusFilter = getStatusList(request);104 JSONObject countryFilter = getCountryList(request, appContext);105 //Get Data from database106 List<TestCaseExecution> testCaseExecutions = testCaseExecutionService.readLastExecutionAndExecutionInQueueByTag(Tag);107 // Table that contain the list of testcases and corresponding executions108 if (outputReport.isEmpty() || outputReport.contains("table")) {109 jsonResponse.put("table", generateTestCaseExecutionTable(appContext, testCaseExecutions, statusFilter, countryFilter));110 }111 // Executions per Function (or Test).112 if (outputReport.isEmpty() || outputReport.contains("functionChart")) {113 jsonResponse.put("functionChart", generateFunctionChart(testCaseExecutions, Tag, statusFilter, countryFilter));114 }115 // Global executions stats per Status116 if (outputReport.isEmpty() || outputReport.contains("statsChart")) {117 jsonResponse.put("statsChart", generateStats(request, testCaseExecutions, statusFilter, countryFilter, true));118 }119 // BugTracker Recap120 if (outputReport.isEmpty() || outputReport.contains("bugTrackerStat")) {121 jsonResponse.put("bugTrackerStat", generateBugStats(request, testCaseExecutions, statusFilter, countryFilter));122 }123 // Labels Stats124 if (outputReport.isEmpty() || outputReport.contains("labelStat")) {125 jsonResponse.put("labelStat", generateLabelStats(appContext, request, testCaseExecutions, statusFilter, countryFilter));126 }127 if (!outputReport.isEmpty()) {128 //currently used to optimize the homePage129 if (outputReport.contains("totalStatsCharts") && !outputReport.contains("statsChart")) {130 jsonResponse.put("statsChart", generateStats(request, testCaseExecutions, statusFilter, countryFilter, false));131 }132 //currently used to optimize the homePage133 if (outputReport.contains("resendTag")) {134 jsonResponse.put("tag", Tag);135 }136 }137 Tag mytag = tagService.convert(tagService.readByKey(Tag));138 JSONObject tagJSON = convertTagToJSONObject(mytag);139 jsonResponse.put("tagObject", tagJSON);140 jsonResponse.put("tagDuration", (mytag.getDateEndQueue().getTime() - mytag.getDateCreated().getTime()) / 60000);141 answer.setItem(jsonResponse);142 answer.setResultMessage(answer.getResultMessage().resolveDescription("ITEM", "Tag Statistics").resolveDescription("OPERATION", "Read"));143 jsonResponse.put("messageType", answer.getResultMessage().getMessage().getCodeString());144 jsonResponse.put("message", answer.getResultMessage().getDescription());145 jsonResponse.put("sEcho", echo);146 response.getWriter().print(jsonResponse.toString());147 } catch (ParseException ex) {148 LOG.error("Error on main call : " + ex);149 } catch (CerberusException ex) {150 LOG.error("Error on main call : " + ex);151 } catch (JSONException ex) {152 LOG.error("Error on main call : " + ex);153 } catch (Exception ex) {154 LOG.error("Error on main call : " + ex);155 }156 }157 private JSONObject testCaseExecutionToJSONObject(TestCaseExecution testCaseExecution) throws JSONException {158 JSONObject result = new JSONObject();159 result.put("ID", String.valueOf(testCaseExecution.getId()));160 result.put("QueueID", String.valueOf(testCaseExecution.getQueueID()));161 result.put("Test", JavaScriptUtils.javaScriptEscape(testCaseExecution.getTest()));162 result.put("TestCase", JavaScriptUtils.javaScriptEscape(testCaseExecution.getTestCase()));163 result.put("Environment", JavaScriptUtils.javaScriptEscape(testCaseExecution.getEnvironment()));164 result.put("Start", testCaseExecution.getStart());165 result.put("End", testCaseExecution.getEnd());166 result.put("Country", JavaScriptUtils.javaScriptEscape(testCaseExecution.getCountry()));167 result.put("RobotDecli", JavaScriptUtils.javaScriptEscape(testCaseExecution.getRobotDecli()));168 result.put("ControlStatus", JavaScriptUtils.javaScriptEscape(testCaseExecution.getControlStatus()));169 result.put("ControlMessage", JavaScriptUtils.javaScriptEscape(testCaseExecution.getControlMessage()));170 result.put("Status", JavaScriptUtils.javaScriptEscape(testCaseExecution.getStatus()));171 result.put("NbExecutions", String.valueOf(testCaseExecution.getNbExecutions()));172 if (testCaseExecution.getQueueState() != null) {173 result.put("QueueState", JavaScriptUtils.javaScriptEscape(testCaseExecution.getQueueState()));174 }175 String bugId;176 String comment;177 String function;178 String shortDesc;179 if ((testCaseExecution.getTestCaseObj() != null) && (testCaseExecution.getTestCaseObj().getTest() != null)) {180 if (testCaseExecution.getApplicationObj() != null && testCaseExecution.getApplicationObj().getBugTrackerUrl() != null181 && !"".equals(testCaseExecution.getApplicationObj().getBugTrackerUrl()) && testCaseExecution.getTestCaseObj().getBugID() != null) {182 bugId = testCaseExecution.getApplicationObj().getBugTrackerUrl().replace("%BUGID%", testCaseExecution.getTestCaseObj().getBugID());183 bugId = new StringBuffer("<a href='")184 .append(bugId)185 .append("' target='reportBugID'>")186 .append(testCaseExecution.getTestCaseObj().getBugID())187 .append("</a>")188 .toString();189 } else {190 bugId = testCaseExecution.getTestCaseObj().getBugID();191 }192 comment = JavaScriptUtils.javaScriptEscape(testCaseExecution.getTestCaseObj().getComment());193 function = JavaScriptUtils.javaScriptEscape(testCaseExecution.getTestCaseObj().getFunction());194 shortDesc = testCaseExecution.getTestCaseObj().getDescription();195 } else {196 bugId = "";197 comment = "";198 function = "";199 shortDesc = "";200 }201 result.put("BugID", bugId);202 result.put("Priority", JavaScriptUtils.javaScriptEscape(String.valueOf(testCaseExecution.getTestCaseObj().getPriority())));203 result.put("Comment", comment);204 result.put("Function", function);205 result.put("ShortDescription", shortDesc);206 result.put("Application", JavaScriptUtils.javaScriptEscape(testCaseExecution.getApplication()));207 return result;208 }209 private JSONObject getStatusList(HttpServletRequest request) {210 JSONObject statusList = new JSONObject();211 try {212 statusList.put("OK", ParameterParserUtil.parseStringParam(request.getParameter("OK"), "off"));213 statusList.put("KO", ParameterParserUtil.parseStringParam(request.getParameter("KO"), "off"));214 statusList.put("NA", ParameterParserUtil.parseStringParam(request.getParameter("NA"), "off"));215 statusList.put("NE", ParameterParserUtil.parseStringParam(request.getParameter("NE"), "off"));216 statusList.put("PE", ParameterParserUtil.parseStringParam(request.getParameter("PE"), "off"));217 statusList.put("FA", ParameterParserUtil.parseStringParam(request.getParameter("FA"), "off"));218 statusList.put("CA", ParameterParserUtil.parseStringParam(request.getParameter("CA"), "off"));219 statusList.put("QU", ParameterParserUtil.parseStringParam(request.getParameter("QU"), "off"));220 } catch (JSONException ex) {221 LOG.error("Error on getStatusList : " + ex);222 }223 return statusList;224 }225 private JSONObject getCountryList(HttpServletRequest request, ApplicationContext appContext) {226 JSONObject countryList = new JSONObject();227 try {228 IInvariantService invariantService = appContext.getBean(InvariantService.class);229 AnswerList answer = invariantService.readByIdname("COUNTRY"); //TODO: handle if the response does not turn ok230 for (Invariant country : (List<Invariant>) answer.getDataList()) {231 countryList.put(country.getValue(), ParameterParserUtil.parseStringParam(request.getParameter(country.getValue()), "off"));232 }233 } catch (JSONException ex) {234 LOG.error("Error on getCountryList : " + ex);235 }236 return countryList;237 }238 private JSONObject generateTestCaseExecutionTable(ApplicationContext appContext, List<TestCaseExecution> testCaseExecutions, JSONObject statusFilter, JSONObject countryFilter) {239 JSONObject testCaseExecutionTable = new JSONObject();240 LinkedHashMap<String, JSONObject> ttc = new LinkedHashMap<String, JSONObject>();241 LinkedHashMap<String, JSONObject> columnMap = new LinkedHashMap<String, JSONObject>();242 testCaseLabelService = appContext.getBean(ITestCaseLabelService.class);243 AnswerList testCaseLabelList = testCaseLabelService.readByTestTestCase(null, null);244 for (TestCaseExecution testCaseExecution : testCaseExecutions) {245 try {246 String controlStatus = testCaseExecution.getControlStatus();247 // We check is Country and status is inside the fitered values.248 if (statusFilter.get(controlStatus).equals("on") && countryFilter.get(testCaseExecution.getCountry()).equals("on")) {249 JSONObject executionJSON = testCaseExecutionToJSONObject(testCaseExecution);250 String execKey = testCaseExecution.getEnvironment() + " " + testCaseExecution.getCountry() + " " + testCaseExecution.getRobotDecli();251 String testCaseKey = testCaseExecution.getTest() + "_" + testCaseExecution.getTestCase();252 JSONObject execTab = new JSONObject();253 JSONObject ttcObject = new JSONObject();254 if (ttc.containsKey(testCaseKey)) {255 // We add an execution entry into the testcase line.256 ttcObject = ttc.get(testCaseKey);257 execTab = ttcObject.getJSONObject("execTab");258 execTab.put(execKey, executionJSON);259 ttcObject.put("execTab", execTab);260 Integer toto = (Integer) ttcObject.get("NbExecutionsTotal");261 toto += testCaseExecution.getNbExecutions() - 1;262 ttcObject.put("NbExecutionsTotal", toto);263 } else {264 // We add a new testcase entry (with The current execution).265 ttcObject.put("test", testCaseExecution.getTest());266 ttcObject.put("testCase", testCaseExecution.getTestCase());267 ttcObject.put("shortDesc", testCaseExecution.getDescription());268 ttcObject.put("status", testCaseExecution.getStatus());269 ttcObject.put("application", testCaseExecution.getApplication());270 boolean testExist = ((testCaseExecution.getTestCaseObj() != null) && (testCaseExecution.getTestCaseObj().getTest() != null));271 if (testExist) {272 ttcObject.put("function", testCaseExecution.getTestCaseObj().getFunction());273 ttcObject.put("priority", testCaseExecution.getTestCaseObj().getPriority());274 ttcObject.put("comment", testCaseExecution.getTestCaseObj().getComment());275 if ((testCaseExecution.getApplicationObj() != null) && (testCaseExecution.getApplicationObj().getBugTrackerUrl() != null) && (testCaseExecution.getTestCaseObj().getBugID() != null)) {276 ttcObject.put("bugId", new JSONObject("{\"bugId\":\"" + testCaseExecution.getTestCaseObj().getBugID() + "\",\"bugTrackerUrl\":\"" + testCaseExecution.getApplicationObj().getBugTrackerUrl().replace("%BUGID%", testCaseExecution.getTestCaseObj().getBugID()) + "\"}"));277 } else {278 ttcObject.put("bugId", new JSONObject("{\"bugId\":\"\",\"bugTrackerUrl\":\"\"}"));279 }280 } else {281 ttcObject.put("function", "");282 ttcObject.put("priority", 0);283 ttcObject.put("comment", "");284 ttcObject.put("bugId", new JSONObject("{\"bugId\":\"\",\"bugTrackerUrl\":\"\"}"));285 }286 // Flag that report if test case still exist.287 ttcObject.put("testExist", testExist);288 // Adding nb of execution on retry.289 ttcObject.put("NbExecutionsTotal", (testCaseExecution.getNbExecutions() - 1));290 execTab.put(execKey, executionJSON);291 ttcObject.put("execTab", execTab);292 /**293 * Iterate on the label retrieved and generate HashMap294 * based on the key Test_TestCase295 */296 LinkedHashMap<String, JSONArray> testCaseWithLabel = new LinkedHashMap();297 for (TestCaseLabel label : (List<TestCaseLabel>) testCaseLabelList.getDataList()) {298 if (Label.TYPE_STICKER.equals(label.getLabel().getType())) { // We only display STICKER Type Label in Reporting By Tag Page..299 String key = label.getTest() + "_" + label.getTestcase();300 JSONObject jo = new JSONObject().put("name", label.getLabel().getLabel()).put("color", label.getLabel().getColor()).put("description", label.getLabel().getDescription());301 if (testCaseWithLabel.containsKey(key)) {302 testCaseWithLabel.get(key).put(jo);303 } else {304 testCaseWithLabel.put(key, new JSONArray().put(jo));305 }306 }307 }308 ttcObject.put("labels", testCaseWithLabel.get(testCaseExecution.getTest() + "_" + testCaseExecution.getTestCase()));309 }310 ttc.put(testCaseExecution.getTest() + "_" + testCaseExecution.getTestCase(), ttcObject);311 JSONObject column = new JSONObject();312 column.put("country", testCaseExecution.getCountry());313 column.put("environment", testCaseExecution.getEnvironment());314 column.put("robotDecli", testCaseExecution.getRobotDecli());315 columnMap.put(testCaseExecution.getRobotDecli() + "_" + testCaseExecution.getCountry() + "_" + testCaseExecution.getEnvironment(), column);316 }317 Map<String, JSONObject> treeMap = new TreeMap<String, JSONObject>(columnMap);318 testCaseExecutionTable.put("tableContent", ttc.values());319 testCaseExecutionTable.put("iTotalRecords", ttc.size());320 testCaseExecutionTable.put("iTotalDisplayRecords", ttc.size());321 testCaseExecutionTable.put("tableColumns", treeMap.values());322 } catch (JSONException ex) {323 LOG.error("Error on generateTestCaseExecutionTable : " + ex);324 } catch (Exception ex) {325 LOG.error("Error on generateTestCaseExecutionTable : " + ex);326 }327 }328 return testCaseExecutionTable;329 }330 private JSONObject generateFunctionChart(List<TestCaseExecution> testCaseExecutions, String tag, JSONObject statusFilter, JSONObject countryFilter) throws JSONException {331 JSONObject jsonResult = new JSONObject();332 Map<String, JSONObject> axisMap = new HashMap<String, JSONObject>();333 String globalStart = "";334 String globalEnd = "";335 long globalStartL = 0;336 long globalEndL = 0;337 String globalStatus = "Finished";338 for (TestCaseExecution testCaseExecution : testCaseExecutions) {339 String key;340 JSONObject control = new JSONObject();341 JSONObject function = new JSONObject();342 String controlStatus = testCaseExecution.getControlStatus();343 if (statusFilter.get(controlStatus).equals("on") && countryFilter.get(testCaseExecution.getCountry()).equals("on")) {344 if (testCaseExecution.getTestCaseObj() != null && testCaseExecution.getTestCaseObj().getFunction() != null && !"".equals(testCaseExecution.getTestCaseObj().getFunction())) {345 key = testCaseExecution.getTestCaseObj().getFunction();346 } else {347 key = testCaseExecution.getTest();348 }349 controlStatus = testCaseExecution.getControlStatus();350 control.put("value", 1);351 control.put("color", getColor(controlStatus));352 control.put("label", controlStatus);353 function.put("name", key);354 if (axisMap.containsKey(key)) {355 function = axisMap.get(key);356 if (function.has(controlStatus)) {357 int prec = function.getJSONObject(controlStatus).getInt("value");358 control.put("value", prec + 1);359 }360 }361 function.put(controlStatus, control);362 axisMap.put(key, function);363 }364 if (testCaseExecution.getStart() != 0) {365 if ((globalStartL == 0) || (globalStartL > testCaseExecution.getStart())) {366 globalStartL = testCaseExecution.getStart();367 globalStart = String.valueOf(new Date(testCaseExecution.getStart()));368 }369 }370 if (!testCaseExecution.getControlStatus().equalsIgnoreCase("PE") && testCaseExecution.getEnd() != 0) {371 if ((globalEndL == 0) || (globalEndL < testCaseExecution.getEnd())) {372 globalEndL = testCaseExecution.getEnd();373 globalEnd = String.valueOf(new Date(testCaseExecution.getEnd()));374 }375 }376 if (testCaseExecution.getControlStatus().equalsIgnoreCase("PE")) {377 globalStatus = "Pending...";378 }379 }380 Gson gson = new Gson();381 jsonResult.put("axis", axisMap.values());382 jsonResult.put("tag", tag);383 jsonResult.put("globalEnd", gson.toJson(new Timestamp(globalEndL)).replace("\"", ""));384 jsonResult.put("globalStart", globalStart);385 jsonResult.put("globalStatus", globalStatus);386 return jsonResult;387 }388 private JSONObject generateStats(HttpServletRequest request, List<TestCaseExecution> testCaseExecutions, JSONObject statusFilter, JSONObject countryFilter, boolean splitStats) throws JSONException {389 JSONObject jsonResult = new JSONObject();390 boolean env = request.getParameter("env") != null || !splitStats;391 boolean country = request.getParameter("country") != null || !splitStats;392 boolean robotDecli = request.getParameter("robotDecli") != null || !splitStats;393 boolean app = request.getParameter("app") != null || !splitStats;394 HashMap<String, SummaryStatisticsDTO> statMap = new HashMap<String, SummaryStatisticsDTO>();395 for (TestCaseExecution testCaseExecution : testCaseExecutions) {396 String controlStatus = testCaseExecution.getControlStatus();397 if (statusFilter.get(controlStatus).equals("on") && countryFilter.get(testCaseExecution.getCountry()).equals("on")) {398 StringBuilder key = new StringBuilder();399 key.append((env) ? testCaseExecution.getEnvironment() : "");400 key.append("_");401 key.append((country) ? testCaseExecution.getCountry() : "");402 key.append("_");403 key.append((robotDecli) ? testCaseExecution.getRobotDecli() : "");404 key.append("_");405 key.append((app) ? testCaseExecution.getApplication() : "");406 SummaryStatisticsDTO stat = new SummaryStatisticsDTO();407 stat.setEnvironment(testCaseExecution.getEnvironment());408 stat.setCountry(testCaseExecution.getCountry());409 stat.setRobotDecli(testCaseExecution.getRobotDecli());410 stat.setApplication(testCaseExecution.getApplication());411 statMap.put(key.toString(), stat);412 }413 }414 jsonResult.put("contentTable", getStatByEnvCountryRobotDecli(testCaseExecutions, statMap, env, country, robotDecli, app, statusFilter, countryFilter, splitStats));415 return jsonResult;416 }417 private JSONObject generateBugStats(HttpServletRequest request, List<TestCaseExecution> testCaseExecutions, JSONObject statusFilter, JSONObject countryFilter) throws JSONException {418 JSONObject jsonResult = new JSONObject();419 SummaryStatisticsBugTrackerDTO stat = new SummaryStatisticsBugTrackerDTO();420 String bugsToReport = "KO,FA";421 stat.setNbExe(1);422 int totalBugReported = 0;423 int totalBugToReport = 0;424 int totalBugToReportReported = 0;425 int totalBugToClean = 0;426 HashMap<String, SummaryStatisticsBugTrackerDTO> statMap = new HashMap<String, SummaryStatisticsBugTrackerDTO>();427 for (TestCaseExecution testCaseExecution : testCaseExecutions) {428 String controlStatus = testCaseExecution.getControlStatus();429 if (statusFilter.get(controlStatus).equals("on") && countryFilter.get(testCaseExecution.getCountry()).equals("on")) {430 String key = "";431 if (bugsToReport.contains(testCaseExecution.getControlStatus())) {432 totalBugToReport++;433 }434 if ((testCaseExecution.getTestCaseObj() != null) && (!StringUtil.isNullOrEmpty(testCaseExecution.getTestCaseObj().getBugID()))) {435 key = testCaseExecution.getTestCaseObj().getBugID();436 stat = statMap.get(key);437 totalBugReported++;438 if (stat == null) {439 stat = new SummaryStatisticsBugTrackerDTO();440 stat.setNbExe(1);441 stat.setBugId(testCaseExecution.getTestCaseObj().getBugID());442 stat.setBugIdURL(testCaseExecution.getApplicationObj().getBugTrackerUrl().replace("%BUGID%", testCaseExecution.getTestCaseObj().getBugID()));443 stat.setExeIdLastStatus(testCaseExecution.getControlStatus());444 stat.setExeIdFirst(testCaseExecution.getId());445 stat.setExeIdLast(testCaseExecution.getId());446 stat.setTestFirst(testCaseExecution.getTest());447 stat.setTestLast(testCaseExecution.getTest());448 stat.setTestCaseFirst(testCaseExecution.getTestCase());449 stat.setTestCaseLast(testCaseExecution.getTestCase());450 } else {451 stat.setNbExe(stat.getNbExe() + 1);452 stat.setExeIdLastStatus(testCaseExecution.getControlStatus());453 stat.setExeIdLast(testCaseExecution.getId());454 stat.setTestLast(testCaseExecution.getTest());455 stat.setTestCaseLast(testCaseExecution.getTestCase());456 }457 if (!(bugsToReport.contains(testCaseExecution.getControlStatus()))) {458 totalBugToClean++;459 stat.setToClean(true);460 } else {461 totalBugToReportReported++;462 }463 statMap.put(key, stat);464 }465 }466 }467 Gson gson = new Gson();468 JSONArray dataArray = new JSONArray();469 for (String key : statMap.keySet()) {470 SummaryStatisticsBugTrackerDTO sumStats = statMap.get(key);471 dataArray.put(new JSONObject(gson.toJson(sumStats)));472 }473 jsonResult.put("BugTrackerStat", dataArray);474 jsonResult.put("totalBugToReport", totalBugToReport);475 jsonResult.put("totalBugToReportReported", totalBugToReportReported);476 jsonResult.put("totalBugReported", totalBugReported);477 jsonResult.put("totalBugToClean", totalBugToClean);478 return jsonResult;479 }480 private JSONObject getStatByEnvCountryRobotDecli(List<TestCaseExecution> testCaseExecutions, HashMap<String, SummaryStatisticsDTO> statMap, boolean env, boolean country, boolean robotDecli, boolean app, JSONObject statusFilter, JSONObject countryFilter, boolean splitStats) throws JSONException {481 SummaryStatisticsDTO total = new SummaryStatisticsDTO();482 total.setEnvironment("Total");483 for (TestCaseExecution testCaseExecution : testCaseExecutions) {484 String controlStatus = testCaseExecution.getControlStatus();485 if (statusFilter.get(controlStatus).equals("on") && countryFilter.get(testCaseExecution.getCountry()).equals("on") || !splitStats) {486 StringBuilder key = new StringBuilder();487 key.append((env) ? testCaseExecution.getEnvironment() : "");488 key.append("_");489 key.append((country) ? testCaseExecution.getCountry() : "");490 key.append("_");491 key.append((robotDecli) ? testCaseExecution.getRobotDecli() : "");492 key.append("_");493 key.append((app) ? testCaseExecution.getApplication() : "");494 if (statMap.containsKey(key.toString())) {495 statMap.get(key.toString()).updateStatisticByStatus(testCaseExecution.getControlStatus());496 }497 total.updateStatisticByStatus(testCaseExecution.getControlStatus());498 }499 }500 return extractSummaryData(statMap, total, splitStats);501 }502 private JSONObject extractSummaryData(HashMap<String, SummaryStatisticsDTO> summaryMap, SummaryStatisticsDTO total, boolean splitStats) throws JSONException {503 JSONObject extract = new JSONObject();504 Gson gson = new Gson();505 if (splitStats) {506 JSONArray dataArray = new JSONArray();507 //sort keys508 TreeMap<String, SummaryStatisticsDTO> sortedKeys = new TreeMap<String, SummaryStatisticsDTO>(summaryMap);509 for (String key : sortedKeys.keySet()) {510 SummaryStatisticsDTO sumStats = summaryMap.get(key);511 //percentage values512 sumStats.updatePercentageStatistics();513 dataArray.put(new JSONObject(gson.toJson(sumStats)));514 }515 extract.put("split", dataArray);516 }517 total.updatePercentageStatistics();518 extract.put("total", new JSONObject(gson.toJson(total)));519 return extract;520 }521 private String getColor(String controlStatus) {522 String color = null;523 if ("OK".equals(controlStatus)) {524 color = "#5CB85C";525 } else if ("KO".equals(controlStatus)) {526 color = "#D9534F";527 } else if ("FA".equals(controlStatus) || "CA".equals(controlStatus)) {528 color = "#F0AD4E";529 } else if ("NA".equals(controlStatus)) {530 color = "#F1C40F";531 } else if ("NE".equals(controlStatus)) {532 color = "#34495E";533 } else if ("PE".equals(controlStatus)) {534 color = "#3498DB";535 } else if ("QU".equals(controlStatus)) {536 color = "#BF00BF";537 } else {538 color = "#000000";539 }540 return color;541 }542 private JSONObject convertTagToJSONObject(Tag tag) throws JSONException {543 Gson gson = new Gson();544 JSONObject result = new JSONObject(gson.toJson(tag));545 return result;546 }547 private JSONObject generateLabelStats(ApplicationContext appContext, HttpServletRequest request, List<TestCaseExecution> testCaseExecutions, JSONObject statusFilter, JSONObject countryFilter) throws JSONException {548 JSONObject jsonResult = new JSONObject();549 boolean stickers = request.getParameter("stickers") != null;550 boolean requirement = request.getParameter("requirement") != null;551 if (stickers || requirement) {552 testCaseLabelService = appContext.getBean(ITestCaseLabelService.class);553 AnswerList testCaseLabelList = testCaseLabelService.readByTestTestCase(null, null);554 SummaryStatisticsDTO total = new SummaryStatisticsDTO();555 total.setEnvironment("Total");556 /**557 * Iterate on the label retrieved and generate HashMap based on the558 * key Test_TestCase559 */560 LinkedHashMap<String, JSONArray> testCaseWithLabel = new LinkedHashMap();561 for (TestCaseLabel label : (List<TestCaseLabel>) testCaseLabelList.getDataList()) {562 if ((Label.TYPE_STICKER.equals(label.getLabel().getType()) && stickers)563 || (Label.TYPE_REQUIREMENT.equals(label.getLabel().getType()) && requirement)) {564 String key = label.getTest() + "_" + label.getTestcase();565 JSONObject jo = new JSONObject().put("name", label.getLabel().getLabel()).put("color", label.getLabel().getColor()).put("description", label.getLabel().getDescription());566 if (testCaseWithLabel.containsKey(key)) {567 testCaseWithLabel.get(key).put(jo);568 } else {569 testCaseWithLabel.put(key, new JSONArray().put(jo));570 }571 }572 }573 /**574 * For All execution, get all label and generate statistics575 */576 LinkedHashMap<String, SummaryStatisticsDTO> labelPerTestcaseExecution = new LinkedHashMap();577 for (TestCaseExecution testCaseExecution : testCaseExecutions) {578 String controlStatus = testCaseExecution.getControlStatus();579 if (statusFilter.get(controlStatus).equals("on") && countryFilter.get(testCaseExecution.getCountry()).equals("on")) {580 //Get label for current test_testcase581 JSONArray labelsForTestCase = testCaseWithLabel.get(testCaseExecution.getTest() + "_" + testCaseExecution.getTestCase());582 if (labelsForTestCase != null) {583 for (int index = 0; index < labelsForTestCase.length(); index++) {584 JSONObject j = labelsForTestCase.getJSONObject(index);585 if (labelPerTestcaseExecution.containsKey(j.get("name"))) {586 labelPerTestcaseExecution.get(j.get("name").toString()).updateStatisticByStatus(controlStatus);587 } else {588 SummaryStatisticsDTO stat = new SummaryStatisticsDTO();589 stat.setLabel(j);590 stat.updateStatisticByStatus(controlStatus);591 labelPerTestcaseExecution.put(j.get("name").toString(), stat);592 }593 total.updateStatisticByStatus(controlStatus);594 }595 }596 }597 }598 jsonResult.put("labelStats", extractSummaryData(labelPerTestcaseExecution, total, true));599 }600 return jsonResult;601 }602 // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">603 /**604 * Handles the HTTP <code>GET</code> method.605 *606 * @param request servlet request607 * @param response servlet response608 * @throws ServletException if a servlet-specific error occurs609 * @throws IOException if an I/O error occurs610 */611 @Override612 protected void doGet(HttpServletRequest request, HttpServletResponse response)613 throws ServletException, IOException {614 processRequest(request, response);615 }616 /**617 * Handles the HTTP <code>POST</code> method.618 *619 * @param request servlet request620 * @param response servlet response621 * @throws ServletException if a servlet-specific error occurs622 * @throws IOException if an I/O error occurs623 */624 @Override625 protected void doPost(HttpServletRequest request, HttpServletResponse response)626 throws ServletException, IOException {627 processRequest(request, response);628 }629 /**630 * Returns a short description of the servlet.631 *632 * @return a String containing servlet description633 */634 @Override635 public String getServletInfo() {636 return "Short description";637 }// </editor-fold>638}...

Full Screen

Full Screen

processRequest

Using AI Code Generation

copy

Full Screen

1import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;2import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;3import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;4ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();5readTestCaseExecutionByTag.processRequest();6ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();7readTestCaseExecutionByTag.processRequest();8ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();9readTestCaseExecutionByTag.processRequest();10import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;11import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;12import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;13ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();14readTestCaseExecutionByTag.processRequest();15ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();16readTestCaseExecutionByTag.processRequest();17ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();18readTestCaseExecutionByTag.processRequest();19import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;20import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;21import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;22ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();23readTestCaseExecutionByTag.processRequest();24ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();25readTestCaseExecutionByTag.processRequest();26ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();27readTestCaseExecutionByTag.processRequest();28import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;29import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;30import org.cerberus.servlet.crud.testexecution.ReadTestCaseExecutionByTag;31ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();32readTestCaseExecutionByTag.processRequest();33ReadTestCaseExecutionByTag readTestCaseExecutionByTag = new ReadTestCaseExecutionByTag();34readTestCaseExecutionByTag.processRequest();

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful