@Test
public void testTreeQueryParam() {

    QueryParam likeParamName = new QueryParam(COLUMN_PROCESSNAME, CoreFunctionType.LIKE_TO.toString(), Collections.singletonList("%processName%"));
    QueryParam likeParamId = new QueryParam(COLUMN_PROCESSID, CoreFunctionType.LIKE_TO.toString(), Collections.singletonList("%processName%"));
    List<Object> terms = new ArrayList<>();
    terms.add(likeParamName);
    terms.add(likeParamId);
    QueryParam queryParamOR = new QueryParam("", LogicalExprType.OR.toString(), terms);
    QueryParam likeParamIdentity = new QueryParam(QueryResultMapper.COLUMN_IDENTITY, CoreFunctionType.EQUALS_TO.toString(), Collections.singletonList("1234"));
    List<Object> queryParamsAndTerms = new ArrayList<>();
    queryParamsAndTerms.add(likeParamIdentity);
    queryParamsAndTerms.add(queryParamOR);
    QueryParam queryParam = new QueryParam("", LogicalExprType.AND.toString(), queryParamsAndTerms);
    coreFunctionQueryParamBuilder = new CoreFunctionQueryParamBuilder(queryParam);
    
    Object builded = coreFunctionQueryParamBuilder.build();
    assertTrue(builded instanceof LogicalExprFilter);
    assertEquals("(USER_IDENTITY = 1234 AND (PROCESSNAME like %processName% OR PROCESSID like %processName%))", builded.toString());
}