Best Cerberus-source code snippet using org.cerberus.dto.SummaryStatisticsDTO.SummaryStatisticsDTO
Source:GetReportData.java
...39import org.cerberus.crud.entity.TestCaseExecution;40import org.cerberus.crud.entity.TestCaseExecutionQueue;41import org.cerberus.exception.CerberusException;42import org.cerberus.crud.service.ITestCaseExecutionService;43import org.cerberus.dto.SummaryStatisticsDTO;44import org.cerberus.util.ParameterParserUtil;45import org.cerberus.util.answer.AnswerList;46import org.json.JSONArray;47import org.json.JSONException;48import org.json.JSONObject;49import org.springframework.context.ApplicationContext;50import org.springframework.web.context.support.WebApplicationContextUtils;51import org.cerberus.crud.service.ITestCaseExecutionQueueService;52/**53 *54 * @author cerberus55 */56@WebServlet(name = "GetReportData", urlPatterns = {"/GetReportData"})57public class GetReportData extends HttpServlet {58 59 private static final Logger LOG = LogManager.getLogger(GetReportData.class);60 ITestCaseExecutionService testCaseExecutionService;61 ITestCaseExecutionQueueService testCaseExecutionInQueueService;62 /**63 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>64 * methods.65 *66 * @param request servlet request67 * @param response servlet response68 * @throws ServletException if a servlet-specific error occurs69 * @throws IOException if an I/O error occurs70 */71 protected void processRequest(HttpServletRequest request, HttpServletResponse response)72 throws ServletException, IOException, CerberusException, ParseException, JSONException {73 response.setContentType("text/html;charset=UTF-8");74 ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());75 testCaseExecutionService = appContext.getBean(ITestCaseExecutionService.class);76 testCaseExecutionInQueueService = appContext.getBean(ITestCaseExecutionQueueService.class);77 response.setContentType("application/json");78 response.setCharacterEncoding("utf8");79 JSONObject jsonResult = new JSONObject();80 String tag = request.getParameter("Tag");81 boolean split = ParameterParserUtil.parseBooleanParam(request.getParameter("split"), false);82 /**83 * Get list of execution by tag, env, country, browser84 */85 AnswerList<TestCaseExecution> listOfExecution = testCaseExecutionService.readByTagByCriteria(tag, 0, 0, null, null, null);86 List<TestCaseExecution> testCaseExecutions = listOfExecution.getDataList();87 /**88 * Get list of Execution in Queue by Tag89 */90 List<TestCaseExecutionQueue> testCaseExecutionsInQueue = testCaseExecutionInQueueService.findTestCaseExecutionInQueuebyTag(tag);91 /**92 * Feed hash map with execution from the two list (to get only one by93 * test,testcase,country,env,browser)94 */95 testCaseExecutions = hashExecution(testCaseExecutions, testCaseExecutionsInQueue);96 /**97 * Geting the global start and end of the execution tag.98 */99 long startMin = 0;100 long endMax = 0;101 for (TestCaseExecution testCaseExecution : testCaseExecutions) {102 if ((startMin == 0) || (testCaseExecution.getStart() < startMin)) {103 startMin = testCaseExecution.getStart();104 }105 if ((endMax == 0) || (testCaseExecution.getEnd() > endMax)) {106 endMax = testCaseExecution.getEnd();107 }108 }109 if (!split) {110 Map<String, JSONObject> axisMap = new HashMap<String, JSONObject>();111 for (TestCaseExecution testCaseWithExecution : testCaseExecutions) {112 String key;113 String controlStatus;114 JSONObject control = new JSONObject();115 JSONObject function = new JSONObject();116 if (testCaseWithExecution.getTestCaseObj().getFunction() != null && !"".equals(testCaseWithExecution.getTestCaseObj().getFunction())) {117 key = testCaseWithExecution.getTestCaseObj().getFunction();118 } else {119 key = testCaseWithExecution.getTest();120 }121 controlStatus = testCaseWithExecution.getControlStatus();122 control.put("value", 1);123 control.put("color", getColor(controlStatus));124 control.put("label", controlStatus);125 function.put("name", key);126 if (axisMap.containsKey(key)) {127 function = axisMap.get(key);128 if (function.has(controlStatus)) {129 int prec = function.getJSONObject(controlStatus).getInt("value");130 control.put("value", prec + 1);131 }132 }133 function.put(controlStatus, control);134 axisMap.put(key, function);135 }136 jsonResult.put("axis", axisMap.values());137 jsonResult.put("tag", tag);138 jsonResult.put("start", new Date(startMin));139 jsonResult.put("end", new Date(endMax));140 } else if (split) {141 boolean env = ParameterParserUtil.parseBooleanParam(request.getParameter("env"), false);142 boolean country = ParameterParserUtil.parseBooleanParam(request.getParameter("country"), false);143 boolean browser = ParameterParserUtil.parseBooleanParam(request.getParameter("browser"), false);144 boolean app = ParameterParserUtil.parseBooleanParam(request.getParameter("app"), false);145 AnswerList columnExec = testCaseExecutionService.readDistinctColumnByTag(tag, env, country, browser, app);146 List<TestCaseExecution> columnTcExec = columnExec.getDataList();147 AnswerList columnQueue = testCaseExecutionInQueueService.readDistinctColumnByTag(tag, env, country, browser, app);148 List<TestCaseExecutionQueue> columnInQueue = columnQueue.getDataList();149 Map<String, TestCaseExecution> testCaseExecutionsList = new LinkedHashMap();150 for (TestCaseExecution column : columnTcExec) {151 String key = column.getBrowser()152 + column.getCountry()153 + column.getEnvironment()154 + column.getApplication();155 testCaseExecutionsList.put(key, column);156 }157 for (TestCaseExecutionQueue column : columnInQueue) {158 TestCaseExecution testCaseExecution = testCaseExecutionInQueueService.convertToTestCaseExecution(column);159 String key = testCaseExecution.getBrowser()160 + testCaseExecution.getCountry()161 + testCaseExecution.getEnvironment()162 + testCaseExecution.getApplicationObj().getApplication();163 testCaseExecutionsList.put(key, testCaseExecution);164 }165 List<TestCaseExecution> res = new ArrayList<TestCaseExecution>(testCaseExecutionsList.values());166 HashMap<String, SummaryStatisticsDTO> statMap = new HashMap<String, SummaryStatisticsDTO>();167 for (TestCaseExecution column : res) {168 SummaryStatisticsDTO stat = new SummaryStatisticsDTO();169 stat.setEnvironment(column.getEnvironment());170 stat.setCountry(column.getCountry());171 stat.setRobotDecli(column.getBrowser());172 stat.setApplication(column.getApplication());173 statMap.put(column.getEnvironment() + "_" + column.getCountry() + "_" + column.getBrowser() + "_" + column.getApplication(),174 stat);175 }176 jsonResult.put("contentTable", getStatByEnvCountryBrowser(testCaseExecutions, statMap, env, country, browser, app));177 }178 response.getWriter().print(jsonResult);179 }180 // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">181 /**182 * Handles the HTTP <code>GET</code> method.183 *184 * @param request servlet request185 * @param response servlet response186 * @throws ServletException if a servlet-specific error occurs187 * @throws IOException if an I/O error occurs188 */189 @Override190 protected void doGet(HttpServletRequest request, HttpServletResponse response)191 throws ServletException, IOException {192 try {193 processRequest(request, response);194 } catch (CerberusException ex) {195 LOG.warn(ex);196 } catch (ParseException ex) {197 LOG.warn(ex);198 } catch (JSONException ex) {199 LOG.warn(ex);200 }201 }202 /**203 * Handles the HTTP <code>POST</code> method.204 *205 * @param request servlet request206 * @param response servlet response207 * @throws ServletException if a servlet-specific error occurs208 * @throws IOException if an I/O error occurs209 */210 @Override211 protected void doPost(HttpServletRequest request, HttpServletResponse response)212 throws ServletException, IOException {213 try {214 processRequest(request, response);215 } catch (CerberusException ex) {216 LOG.warn(ex);217 } catch (ParseException ex) {218 LOG.warn(ex);219 } catch (JSONException ex) {220 LOG.warn(ex);221 }222 }223 /**224 * Returns a short description of the servlet.225 *226 * @return a String containing servlet description227 */228 @Override229 public String getServletInfo() {230 return "Short description";231 }// </editor-fold>232 private List<TestCaseExecution> hashExecution(List<TestCaseExecution> testCaseExecutions, List<TestCaseExecutionQueue> testCaseExecutionsInQueue) throws ParseException {233 Map<String, TestCaseExecution> testCaseExecutionsList = new LinkedHashMap();234 SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");235 for (TestCaseExecution testCaseExecution : testCaseExecutions) {236 String key = testCaseExecution.getBrowser() + "_"237 + testCaseExecution.getCountry() + "_"238 + testCaseExecution.getEnvironment() + "_"239 + testCaseExecution.getTest() + "_"240 + testCaseExecution.getTestCase();241 testCaseExecutionsList.put(key, testCaseExecution);242 }243 for (TestCaseExecutionQueue testCaseExecutionInQueue : testCaseExecutionsInQueue) {244 TestCaseExecution testCaseExecution = testCaseExecutionInQueueService.convertToTestCaseExecution(testCaseExecutionInQueue);245 String key = testCaseExecution.getBrowser() + "_"246 + testCaseExecution.getCountry() + "_"247 + testCaseExecution.getEnvironment() + "_"248 + testCaseExecution.getTest() + "_"249 + testCaseExecution.getTestCase();250 if ((testCaseExecutionsList.containsKey(key)251 && testCaseExecutionsList.get(key).getStart() < testCaseExecution.getStart())252 || !testCaseExecutionsList.containsKey(key)) {253 testCaseExecutionsList.put(key, testCaseExecution);254 }255 }256 List<TestCaseExecution> result = new ArrayList<TestCaseExecution>(testCaseExecutionsList.values());257 return result;258 }259 private JSONObject getStatByEnvCountryBrowser(List<TestCaseExecution> testCaseExecutions, HashMap<String, SummaryStatisticsDTO> statMap, boolean env, boolean country, boolean browser, boolean app) throws JSONException {260 SummaryStatisticsDTO total = new SummaryStatisticsDTO();261 total.setEnvironment("Total");262 for (TestCaseExecution testCaseExecution : testCaseExecutions) {263 StringBuilder key = new StringBuilder();264 key.append((env) ? testCaseExecution.getEnvironment() : "");265 key.append("_");266 key.append((country) ? testCaseExecution.getCountry() : "");267 key.append("_");268 key.append((browser) ? testCaseExecution.getBrowser() : "");269 key.append("_");270 key.append((app) ? testCaseExecution.getApplication() : "");271 if (statMap.containsKey(key.toString())) {272 statMap.get(key.toString()).updateStatisticByStatus(testCaseExecution.getControlStatus());273 }274 total.updateStatisticByStatus(testCaseExecution.getControlStatus());275 }276 return extractSummaryData(statMap, total);277 }278 private JSONObject extractSummaryData(HashMap<String, SummaryStatisticsDTO> summaryMap, SummaryStatisticsDTO total) throws JSONException {279 JSONObject extract = new JSONObject();280 JSONArray dataArray = new JSONArray();281 Gson gson = new Gson();282 //sort keys283 TreeMap<String, SummaryStatisticsDTO> sortedKeys = new TreeMap<String, SummaryStatisticsDTO>(summaryMap);284 for (String key : sortedKeys.keySet()) {285 SummaryStatisticsDTO sumStats = summaryMap.get(key);286 //percentage values287 sumStats.updatePercentageStatistics();288 dataArray.put(new JSONObject(gson.toJson(sumStats)));289 }290 total.updatePercentageStatistics();291 extract.put("split", dataArray);292 extract.put("total", new JSONObject(gson.toJson(total)));293 return extract;294 }295 private String getColor(String controlStatus) {296 String color = null;297 if ("OK".equals(controlStatus)) {298 color = "#5CB85C";299 } else if ("KO".equals(controlStatus)) {...
SummaryStatisticsDTO
Using AI Code Generation
1I am facing the same issue. I am using IntelliJ IDEA 2019.2.3 (Community Edition) and Cucumber for Java 0.3.1. I am using Cucumber-JVM 1.2.5. I am using the following code:2public class CucumberTest {3 public void runCucumber() throws Throwable {4 ClassLoader classLoader = getClass().getClassLoader();5 URL resource = classLoader.getResource("cucumber/features");6 assert resource != null;7 File featureDir = new File(resource.toURI());8 String[] argv = {"--glue", "cucumber.steps", featureDir.getAbsolutePath()};9 Main.run(argv, Thread.currentThread().getContextClassLoader(), new Formatter[]{new CucumberTestFormatter()});10 }11}12I am using IntelliJ IDEA 2019.2.4 (Community Edition) and Cucumber for Java 0
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!!