Search in sources :

Example 1 with TestCaseService

use of org.cerberus.crud.service.impl.TestCaseService in project cerberus-source by cerberustesting.

the class ReadTestCaseExecution method findValuesForColumnFilter.

/**
 * Find Values to display for Column Filter
 *
 * @param system
 * @param test
 * @param appContext
 * @param request
 * @param columnName
 * @return
 * @throws JSONException
 */
private AnswerItem findValuesForColumnFilter(String system, String test, ApplicationContext appContext, HttpServletRequest request, String columnName) throws JSONException {
    AnswerItem answer = new AnswerItem();
    JSONObject object = new JSONObject();
    AnswerList values = new AnswerList();
    Map<String, List<String>> individualSearch = new HashMap<>();
    testCaseService = appContext.getBean(TestCaseService.class);
    invariantService = appContext.getBean(InvariantService.class);
    buildRevisionInvariantService = appContext.getBean(BuildRevisionInvariantService.class);
    applicationService = appContext.getBean(ApplicationService.class);
    LOG.debug(columnName);
    switch(columnName) {
        /**
         * Columns from Status
         */
        case "exe.controlStatus":
            List<String> dataList = new ArrayList<>();
            dataList.add(TestCaseExecution.CONTROLSTATUS_CA);
            dataList.add(TestCaseExecution.CONTROLSTATUS_FA);
            dataList.add(TestCaseExecution.CONTROLSTATUS_KO);
            dataList.add(TestCaseExecution.CONTROLSTATUS_NA);
            dataList.add(TestCaseExecution.CONTROLSTATUS_NE);
            dataList.add(TestCaseExecution.CONTROLSTATUS_OK);
            dataList.add(TestCaseExecution.CONTROLSTATUS_PE);
            values.setDataList(dataList);
            MessageEvent msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_OK);
            msg.setDescription(msg.getDescription().replace("%ITEM%", "execution").replace("%OPERATION%", "SELECT"));
            values.setResultMessage(msg);
            break;
        /**
         * For columns test and testcase, get distinct values from test
         * table
         */
        case "exe.test":
        case "exe.testcase":
        case "exe.status":
            values = testCaseService.readDistinctValuesByCriteria(system, test, "", null, columnName.replace("exe.", "tec."));
            break;
        /**
         * For columns country, environment get values from invariant
         */
        case "exe.country":
        case "exe.environment":
            try {
                /**
                 */
                AnswerList<Invariant> invariants = invariantService.readByIdname(columnName.replace("exe.", ""));
                List<Invariant> invariantList = invariantService.convert(invariants);
                List<String> stringResult = new ArrayList();
                for (Invariant inv : invariantList) {
                    stringResult.add(inv.getValue());
                }
                values.setDataList(stringResult);
                values.setTotalRows(invariantList.size());
                values.setResultMessage(invariants.getResultMessage());
            } catch (CerberusException ex) {
                LOG.warn(ex);
            }
            break;
        /**
         * For columns build, revision get values from
         * buildrevisioninvariant
         */
        case "exe.build":
        case "exe.revision":
            individualSearch = new HashMap<>();
            individualSearch.put("level", new ArrayList(Arrays.asList(columnName.equals("exe.build") ? "1" : "2")));
            values = buildRevisionInvariantService.readDistinctValuesByCriteria(system, "", individualSearch, "versionName");
            break;
        /**
         * For columns application get values from application
         */
        case "exe.application":
            values = applicationService.readDistinctValuesByCriteria(system, "", null, columnName.replace("exe.", ""));
            break;
        /**
         * For all other columns, get distinct values from testcaseexecution
         */
        default:
            String searchParameter = ParameterParserUtil.parseStringParam(request.getParameter("sSearch"), "");
            String sColumns = ParameterParserUtil.parseStringParam(request.getParameter("sColumns"), "tec.test,tec.testcase,application,project,ticket,description,behaviororvalueexpected,readonly,bugtrackernewurl,deploytype,mavengroupid");
            String[] columnToSort = sColumns.split(",");
            List<String> individualLike = new ArrayList(Arrays.asList(ParameterParserUtil.parseStringParam(request.getParameter("sLike"), "").split(",")));
            individualSearch = new HashMap<>();
            for (int a = 0; a < columnToSort.length; a++) {
                if (null != request.getParameter("sSearch_" + a) && !request.getParameter("sSearch_" + a).isEmpty()) {
                    List<String> search = new ArrayList(Arrays.asList(request.getParameter("sSearch_" + a).split(",")));
                    if (individualLike.contains(columnToSort[a])) {
                        individualSearch.put(columnToSort[a] + ":like", search);
                    } else {
                        individualSearch.put(columnToSort[a], search);
                    }
                }
            }
            values = testCaseExecutionService.readDistinctValuesByCriteria(system, test, searchParameter, individualSearch, columnName);
    }
    object.put("distinctValues", values.getDataList());
    answer.setItem(object);
    answer.setResultMessage(values.getResultMessage());
    return answer;
}
Also used : Invariant(org.cerberus.crud.entity.Invariant) AnswerList(org.cerberus.util.answer.AnswerList) CerberusException(org.cerberus.exception.CerberusException) BuildRevisionInvariantService(org.cerberus.crud.service.impl.BuildRevisionInvariantService) IBuildRevisionInvariantService(org.cerberus.crud.service.IBuildRevisionInvariantService) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) MessageEvent(org.cerberus.engine.entity.MessageEvent) ArrayList(java.util.ArrayList) ITestCaseService(org.cerberus.crud.service.ITestCaseService) TestCaseService(org.cerberus.crud.service.impl.TestCaseService) AnswerItem(org.cerberus.util.answer.AnswerItem) JSONObject(org.json.JSONObject) AnswerList(org.cerberus.util.answer.AnswerList) List(java.util.List) ArrayList(java.util.ArrayList) InvariantService(org.cerberus.crud.service.impl.InvariantService) BuildRevisionInvariantService(org.cerberus.crud.service.impl.BuildRevisionInvariantService) IInvariantService(org.cerberus.crud.service.IInvariantService) IBuildRevisionInvariantService(org.cerberus.crud.service.IBuildRevisionInvariantService) ApplicationService(org.cerberus.crud.service.impl.ApplicationService) IApplicationService(org.cerberus.crud.service.IApplicationService)

Aggregations

ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 LinkedHashMap (java.util.LinkedHashMap)1 List (java.util.List)1 Invariant (org.cerberus.crud.entity.Invariant)1 IApplicationService (org.cerberus.crud.service.IApplicationService)1 IBuildRevisionInvariantService (org.cerberus.crud.service.IBuildRevisionInvariantService)1 IInvariantService (org.cerberus.crud.service.IInvariantService)1 ITestCaseService (org.cerberus.crud.service.ITestCaseService)1 ApplicationService (org.cerberus.crud.service.impl.ApplicationService)1 BuildRevisionInvariantService (org.cerberus.crud.service.impl.BuildRevisionInvariantService)1 InvariantService (org.cerberus.crud.service.impl.InvariantService)1 TestCaseService (org.cerberus.crud.service.impl.TestCaseService)1 MessageEvent (org.cerberus.engine.entity.MessageEvent)1 CerberusException (org.cerberus.exception.CerberusException)1 AnswerItem (org.cerberus.util.answer.AnswerItem)1 AnswerList (org.cerberus.util.answer.AnswerList)1 JSONObject (org.json.JSONObject)1