Repository: lens
Updated Branches:
  refs/heads/master 33dfee1d6 -> 44bb7edb6


http://git-wip-us.apache.org/repos/asf/lens/blob/44bb7edb/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
----------------------------------------------------------------------
diff --git 
a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
 
b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
new file mode 100644
index 0000000..821c388
--- /dev/null
+++ 
b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
@@ -0,0 +1,515 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.lens.regression.client;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.List;
+
+import javax.ws.rs.client.WebTarget;
+import javax.xml.bind.JAXBException;
+
+import org.apache.lens.api.query.*;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.helpers.*;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.server.api.error.LensException;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+
+public class ITListQueryTest extends BaseTestClass {
+
+  WebTarget servLens;
+  private String sessionHandleString;
+
+  LensServerHelper lens = getLensServerHelper();
+  MetastoreHelper mHelper = getMetastoreHelper();
+  SessionHelper sHelper = getSessionHelper();
+  QueryHelper qHelper = getQueryHelper();
+
+  private final String hdfsJarPath = lens.getServerHdfsUrl() + "/tmp";
+  private final String localJarPath = new File("").getAbsolutePath() + 
"/lens-regression/target/testjars/";
+  private final String hiveUdfJar = "hiveudftest.jar";
+  private final String serverResourcePath = "/tmp/regression/resources";
+  String jdbcDriver = "jdbc/jdbc1", hiveDriver = "hive/hive1";
+
+
+  private static Logger logger = Logger.getLogger(ITListQueryTest.class);
+
+  @BeforeClass(alwaysRun = true)
+  public void initialize() throws IOException, JAXBException, LensException {
+    servLens = ServiceManagerHelper.init();
+//        HadoopUtil.uploadJars(localJarPath + "/" + hiveUdfJar, hdfsJarPath);
+    logger.info("Creating a new Session");
+    sessionHandleString = lens.openSession(lens.getCurrentDB());
+  }
+
+  @BeforeMethod(alwaysRun = true)
+  public void setUp(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+  }
+
+  @AfterClass(alwaysRun = true)
+  public void closeSession() throws Exception {
+    logger.info("Closing Session");
+    lens.closeSession();
+  }
+
+  @DataProvider(name = "DP")
+  public Object[][] getData() throws Exception {
+
+    String[] queries = new String[]{QueryInventory.HIVE_CUBE_QUERY, 
QueryInventory.HIVE_DIM_QUERY,
+      QueryInventory.JDBC_DIM_QUERY, };
+    Object[][] testData = new Object[3][1];
+
+    int i = 0;
+    for (String query : queries) {
+      testData[i][0] = query;
+      i++;
+    }
+    return testData;
+  }
+
+
+  @Test(enabled = true, dataProvider = "DP")
+  public void getQueryByQueryNameAllQuery(String queryString) throws Exception 
{
+
+    String queryName = "queryNameFirst";
+    String queryName1 = "queryNameSecond";
+    String queryName2 = "Name";
+
+    //Running Query with queryName
+    QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString, 
queryName).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    //Running Query with queryName1
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(queryString, 
queryName1).getData();
+    lensQuery = qHelper.waitForCompletion(queryHandle1);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    //Running Query with queryName
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(queryString, 
queryName).getData();
+    lensQuery = qHelper.waitForCompletion(queryHandle2);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL);
+
+    //Running Query with queryName2
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(queryString, 
queryName2).getData();
+    lensQuery = qHelper.waitForCompletion(queryHandle3);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL);
+
+    //Getting queryList by queryName
+    List<QueryHandle> list = qHelper.getQueryHandleList(queryName);
+    Assert.assertTrue(list.contains(queryHandle), "List by Query Name failed");
+    Assert.assertFalse(list.contains(queryHandle1), "List by Query Name 
failed");
+    Assert.assertTrue(list.contains(queryHandle2), "List by Query Name 
failed");
+
+    //Getting queryList by queryName1
+    List<QueryHandle> list1 = qHelper.getQueryHandleList(queryName1);
+    Assert.assertFalse(list1.contains(queryHandle), "List by Query Name 
failed");
+    Assert.assertTrue(list1.contains(queryHandle1), "List by Query Name 
failed");
+    Assert.assertFalse(list1.contains(queryHandle2), "List by Query Name 
failed");
+
+    //Getting  queryList by queryName2
+    List<QueryHandle> list2 = qHelper.getQueryHandleList(queryName2);
+    Assert.assertTrue(list2.contains(queryHandle), "List by Query Name 
failed");
+    Assert.assertTrue(list2.contains(queryHandle1), "List by Query Name 
failed");
+    Assert.assertTrue(list2.contains(queryHandle2), "List by Query Name 
failed");
+    Assert.assertTrue(list2.contains(queryHandle3), "List by Query Name 
failed");
+
+    //Getting all queryList
+    List<QueryHandle> list3 = qHelper.getQueryHandleList();
+    Assert.assertTrue(list3.contains(queryHandle), "List by Query Name 
failed");
+    Assert.assertTrue(list3.contains(queryHandle1), "List by Query Name 
failed");
+    Assert.assertTrue(list3.contains(queryHandle2), "List by Query Name 
failed");
+    Assert.assertTrue(list3.contains(queryHandle3), "List by Query Name 
failed");
+  }
+
+  @Test(enabled = true)
+  public void listQueryByTimeRange() throws Exception {
+
+    //Running First Query
+
+    String startTime = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 1st Query : " + startTime);
+    Thread.sleep(20000);
+
+    QueryHandle queryHandle = (QueryHandle) 
qHelper.executeQuery(QueryInventory.QUERY).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    String endTime = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 1st Query : " + endTime);
+
+    Thread.sleep(20000);
+
+    //Running Second Query
+
+    String startTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 2nd Query : " + startTime1);
+    Thread.sleep(20000);
+
+    QueryHandle queryHandle1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.QUERY).getData();
+    lensQuery = qHelper.waitForCompletion(queryHandle1);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    String endTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 2nd Query : " + endTime1);
+
+    List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, 
sessionHandleString, startTime, endTime);
+
+    Assert.assertTrue(list.contains(queryHandle), "QueryList by TimeRange is 
not correct");
+    Assert.assertFalse(list.contains(queryHandle1), "QueryList by TimeRange is 
not correct");
+
+    List<QueryHandle> list1 = qHelper.getQueryHandleList(null, null, null, 
sessionHandleString, startTime1, endTime1);
+    Assert.assertFalse(list1.contains(queryHandle), "QueryList by TimeRange is 
not correct");
+    Assert.assertTrue(list1.contains(queryHandle1), "QueryList by TimeRange is 
not correct");
+
+    List<QueryHandle> list2 = qHelper.getQueryHandleList(null, null, null, 
sessionHandleString, startTime, endTime1);
+    Assert.assertTrue(list2.contains(queryHandle), "QueryList by TimeRange is 
not correct");
+    Assert.assertTrue(list2.contains(queryHandle1), "QueryList by TimeRange is 
not correct");
+
+    List<QueryHandle> list3 = qHelper.getQueryHandleList();
+    Assert.assertTrue(list3.contains(queryHandle), "QueryList by TimeRange is 
not correct");
+    Assert.assertTrue(list3.contains(queryHandle1), "QueryList by TimeRange is 
not correct");
+  }
+
+
+  @Test(enabled = true)
+  public void listQuerySpecificUserAllUser() throws Exception {
+
+    String diffUser = "diff";
+    String diffPass = "diff";
+    String diffSessionHandleString = sHelper.openNewSession(diffUser, 
diffPass, lens.getCurrentDB());
+
+    //Running Query with user1
+    QueryHandle queryHandle1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.QUERY).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle1);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    //Running Query with user2
+    QueryHandle queryHandle2 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.QUERY, null,
+        diffSessionHandleString).getData();
+    lensQuery = qHelper.waitForCompletion(diffSessionHandleString, 
queryHandle2);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL,
+        "Query should complete successfully");
+
+    //Getting queryList by user1
+    List<QueryHandle> list = qHelper.getQueryHandleList(null, null, 
lens.getUserName());
+    Assert.assertTrue(list.contains(queryHandle1), "List by user failed");
+    Assert.assertFalse(list.contains(queryHandle2), "List by user failed");
+
+    //Getting queryList by user2
+    list = qHelper.getQueryHandleList(null, null, diffUser);
+    Assert.assertFalse(list.contains(queryHandle1), "List by user failed");
+    Assert.assertTrue(list.contains(queryHandle2), "List by user failed");
+
+    //Getting queryList by user = all
+    list = qHelper.getQueryHandleList(null, null, "all");
+    Assert.assertTrue(list.contains(queryHandle1), "List by user failed");
+    Assert.assertTrue(list.contains(queryHandle2), "List by user failed");
+  }
+
+
+  @Test(enabled = true)
+  public void listQueryByTimeRangeQueryName() throws Exception {
+
+    String queryName = "testQueryName";
+
+    String startTime = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 1st Query : " + startTime);
+    Thread.sleep(60000);
+
+    QueryHandle queryHandle = (QueryHandle) 
qHelper.executeQuery(QueryInventory.QUERY, queryName).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    String endTime = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 1st Query : " + endTime);
+
+    List<QueryHandle> list = qHelper.getQueryHandleList(queryName, null, null, 
sessionHandleString, startTime, endTime);
+    Assert.assertTrue(list.contains(queryHandle), "QueryList by TimeRange is 
not correct");
+
+    List<QueryHandle> list1 = qHelper.getQueryHandleList();
+    Assert.assertTrue(list1.contains(queryHandle), "QueryList by TimeRange is 
not correct");
+
+  }
+
+  @Test(enabled = true)
+  public void listQueryByState() throws Exception {
+    //Successful Query
+    QueryHandle queryHandle1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.QUERY).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle1);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+    //Running Query
+    QueryHandle queryHandle3 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.SLEEP_QUERY).getData();
+    qHelper.waitForQueryToRun(queryHandle3);
+
+    //Cancelled Query
+    QueryHandle queryHandle4 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.SLEEP_QUERY).getData();
+    qHelper.waitForQueryToRun(queryHandle4);
+    qHelper.killQueryByQueryHandle(queryHandle4);
+
+    //TODO : Add Failed queries
+
+    //List Successful queries
+    List<QueryHandle> list = qHelper.getQueryHandleList(null, "SUCCESSFUL");
+    Assert.assertTrue(list.contains(queryHandle1), "QueryList by State is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle3), "QueryList by State is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle4), "QueryList by State is not 
correct");
+
+    //List Failed queries
+    list = qHelper.getQueryHandleList(null, "FAILED");
+    Assert.assertFalse(list.contains(queryHandle1), "QueryList by State is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle3), "QueryList by State is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle4), "QueryList by State is not 
correct");
+
+    //List Running queries
+    list = qHelper.getQueryHandleList(null, "RUNNING");
+    Assert.assertFalse(list.contains(queryHandle1), "QueryList by State is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle3), "QueryList by State is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle4), "QueryList by State is not 
correct");
+
+    //List Cancelled queries
+    list = qHelper.getQueryHandleList(null, "CANCELED");
+    Assert.assertFalse(list.contains(queryHandle1), "QueryList by State is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle3), "QueryList by State is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle4), "QueryList by State is not 
correct");
+
+    //List All queries
+    list = qHelper.getQueryHandleList();
+    Assert.assertTrue(list.contains(queryHandle1), "QueryList by State is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle3), "QueryList by State is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle4), "QueryList by State is not 
correct");
+
+  }
+
+
+  @Test(enabled = true)
+  public void listQueryByDriver() throws Exception {
+
+    QueryHandle queryHandle1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData();
+    qHelper.waitForQueryToRun(queryHandle1);
+
+    QueryHandle queryHandle2 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
+    qHelper.waitForQueryToRun(queryHandle2);
+
+    QueryHandle queryHandle3 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData();
+    qHelper.waitForQueryToRun(queryHandle3);
+
+    QueryHandle queryHandle4 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData();
+    qHelper.waitForQueryToRun(queryHandle4);
+
+    //List jdbc queries
+    List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, 
sessionHandleString, null, null, jdbcDriver);
+    Assert.assertTrue(list.contains(queryHandle1), "QueryList by driver is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle2), "QueryList by driver is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle3), "QueryList by driver is 
not correct");
+    Assert.assertFalse(list.contains(queryHandle4), "QueryList by driver is 
not correct");
+
+    //List hive queries
+    list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, 
null, null, hiveDriver);
+    Assert.assertFalse(list.contains(queryHandle1), "QueryList by driver is 
not correct");
+    Assert.assertFalse(list.contains(queryHandle2), "QueryList by driver is 
not correct");
+    Assert.assertTrue(list.contains(queryHandle3), "QueryList by driver is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle4), "QueryList by driver is not 
correct");
+
+  }
+
+
+  @Test(enabled = true)
+  public void listFinishedQueryByDriver() throws Exception {
+
+    QueryHandle queryHandle1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData();
+    qHelper.waitForCompletion(queryHandle1);
+
+    QueryHandle queryHandle2 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
+    qHelper.waitForCompletion(queryHandle2);
+
+    QueryHandle queryHandle3 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData();
+    qHelper.waitForCompletion(queryHandle3);
+
+    QueryHandle queryHandle4 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData();
+    qHelper.waitForCompletion(queryHandle4);
+
+    // TODO : Add purger configuration time
+
+    // sleep for query purger time
+    Thread.sleep(30000);
+
+    // This is make sure query is retrived from DB.
+    lens.restart();
+
+    //List jdbc queries
+    List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, 
sessionHandleString, null, null, jdbcDriver);
+    Assert.assertTrue(list.contains(queryHandle1), "QueryList by driver is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle2), "QueryList by driver is not 
correct");
+    Assert.assertFalse(list.contains(queryHandle3), "QueryList by driver is 
not correct");
+    Assert.assertFalse(list.contains(queryHandle4), "QueryList by driver is 
not correct");
+
+    //List hive queries
+    list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, 
null, null, hiveDriver);
+    Assert.assertFalse(list.contains(queryHandle1), "QueryList by driver is 
not correct");
+    Assert.assertFalse(list.contains(queryHandle2), "QueryList by driver is 
not correct");
+    Assert.assertTrue(list.contains(queryHandle3), "QueryList by driver is not 
correct");
+    Assert.assertTrue(list.contains(queryHandle4), "QueryList by driver is not 
correct");
+  }
+
+
+  @Test(enabled = true)
+  public void listQueryByDriverNUser() throws Exception {
+
+    QueryHandle q1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData();
+    QueryHandle q2 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData();
+
+    //Running Query with diff user
+    String diffSession = sHelper.openNewSession("diff", "diff", 
lens.getCurrentDB());
+    QueryHandle q3 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY, null, 
diffSession).getData();
+    QueryHandle q4 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, null, 
diffSession).getData();
+
+    List<QueryHandle> list = qHelper.getQueryHandleList(null, null, "all", 
sessionHandleString, null, null, jdbcDriver);
+    Assert.assertTrue(list.contains(q1), "QueryList by driver is not correct");
+    Assert.assertTrue(list.contains(q3), "QueryList by driver is not correct");
+
+    list = qHelper.getQueryHandleList(null, null, "all", sessionHandleString, 
null, null, hiveDriver);
+    Assert.assertTrue(list.contains(q2), "QueryList by driver is not correct");
+    Assert.assertTrue(list.contains(q4), "QueryList by driver is not correct");
+
+    //Check for driver along with user filter
+    list = qHelper.getQueryHandleList(null, null, lens.getUserName(), 
sessionHandleString, null, null, jdbcDriver);
+    Assert.assertTrue(list.contains(q1), "QueryList by driver is not correct");
+    Assert.assertFalse(list.contains(q3), "QueryList by driver is not 
correct");
+
+    list = qHelper.getQueryHandleList(null, null, "diff", sessionHandleString, 
null, null, hiveDriver);
+    Assert.assertTrue(list.contains(q4), "QueryList by driver is not correct");
+    Assert.assertFalse(list.contains(q2), "QueryList by driver is not 
correct");
+  }
+
+
+  @Test(enabled = true)
+  public void listQueryByDriverNStatus() throws Exception {
+
+    String user = "new", pwd = "new";
+    String newSession = sHelper.openNewSession(user, pwd, 
mHelper.getCurrentDB());
+
+    //Cancelled hive Query
+    QueryHandle q1 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.SLEEP_QUERY, null, newSession).getData();
+    qHelper.waitForQueryToRun(q1, newSession);
+    qHelper.killQueryByQueryHandle(q1);
+
+    //Successful hive Query
+    QueryHandle q2 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, null, 
newSession).getData();
+    qHelper.waitForCompletion(newSession, q2);
+
+    //Successful jdbc Query
+    QueryHandle q3 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY, null, 
newSession).getData();
+    qHelper.waitForCompletion(newSession, q2);
+
+    //Running hive Query
+    QueryHandle q4 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.SLEEP_QUERY, null, newSession).getData();
+    qHelper.waitForQueryToRun(q4, newSession);
+
+    List<QueryHandle> cancelledHive = qHelper.getQueryHandleList(null, 
"CANCELED", user, sessionHandleString, null,
+        null, hiveDriver);
+    List<QueryHandle> successJdbc = qHelper.getQueryHandleList(null, 
"SUCCESSFUL", user, sessionHandleString, null,
+        null, jdbcDriver);
+    List<QueryHandle> successhive = qHelper.getQueryHandleList(null, 
"SUCCESSFUL", user, sessionHandleString, null,
+        null, hiveDriver);
+
+    Assert.assertTrue(cancelledHive.contains(q1), "QueryList by driver is not 
correct");
+    Assert.assertFalse(cancelledHive.contains(q2), "QueryList by driver is not 
correct");
+    Assert.assertFalse(cancelledHive.contains(q3), "QueryList by driver is not 
correct");
+    Assert.assertFalse(cancelledHive.contains(q4), "QueryList by driver is not 
correct");
+
+    Assert.assertTrue(successhive.contains(q2), "QueryList by driver is not 
correct");
+    Assert.assertFalse(successhive.contains(q1), "QueryList by driver is not 
correct");
+    Assert.assertFalse(successhive.contains(q3), "QueryList by driver is not 
correct");
+    Assert.assertFalse(successhive.contains(q4), "QueryList by driver is not 
correct");
+
+    Assert.assertTrue(successJdbc.contains(q3), "QueryList by driver is not 
correct");
+    Assert.assertFalse(successJdbc.contains(q1), "QueryList by driver is not 
correct");
+    Assert.assertFalse(successJdbc.contains(q2), "QueryList by driver is not 
correct");
+    Assert.assertFalse(successJdbc.contains(q4), "QueryList by driver is not 
correct");
+  }
+
+
+
+  @Test(enabled = true)
+  public void listQueryByNameStatusUserTimeRange() throws Exception {
+
+    String queryName1 = "first", queryName2 = "second", queryName3 = "third";
+    String user1 = "diff", pwd1 = "diff";
+    String user2 = "diff1", pwd2 = "diff1";
+
+    String diffSession1 = sHelper.openNewSession(user1, pwd1, 
lens.getCurrentDB());
+    String diffSession2 = sHelper.openNewSession(user2, pwd2, 
lens.getCurrentDB());
+
+    String startTime1 = String.valueOf(System.currentTimeMillis());
+    Thread.sleep(10000);
+    QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY, 
queryName1).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(q1);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), 
QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+    String endTime1 = String.valueOf(System.currentTimeMillis());
+
+    Thread.sleep(10000);
+
+    String startTime2 = String.valueOf(System.currentTimeMillis());
+    Thread.sleep(10000);
+    QueryHandle q2 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName2, 
diffSession1).getData();
+    String endTime2 = String.valueOf(System.currentTimeMillis());
+
+    Thread.sleep(10000);
+
+    String startTime3 = String.valueOf(System.currentTimeMillis());
+    Thread.sleep(10000);
+    QueryHandle q3 = (QueryHandle) 
qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName3, 
diffSession2).getData();
+    qHelper.killQueryByQueryHandle(q3);
+    String endTime3 = String.valueOf(System.currentTimeMillis());
+
+    Thread.sleep(10000);
+
+    List<QueryHandle> list1 = qHelper.getQueryHandleList(queryName2, 
"RUNNING", user1, sessionHandleString, startTime2,
+        endTime2);
+    List<QueryHandle> list2 = qHelper.getQueryHandleList(queryName3, 
"CANCELED", user2, sessionHandleString, startTime3,
+        endTime3);
+    List<QueryHandle> list3 = qHelper.getQueryHandleList(queryName1, 
"SUCCESSFUL", lens.getUserName(),
+        sessionHandleString, startTime1, endTime1);
+
+
+    Assert.assertTrue(list1.contains(q2), "List by Query Name, Status,Time 
Range,User Failed");
+    Assert.assertFalse(list1.contains(q1), "List by Query Name, Status,Time 
Range,User Failed");
+    Assert.assertFalse(list1.contains(q3), "List by Query Name, Status,Time 
Range,User Failed");
+
+    Assert.assertTrue(list2.contains(q3), "List by Query Name, Status,Time 
Range,User Failed");
+    Assert.assertFalse(list2.contains(q1), "List by Query Name, Status,Time 
Range,User Failed");
+    Assert.assertFalse(list2.contains(q2), "List by Query Name, Status,Time 
Range,User Failed");
+
+    Assert.assertTrue(list3.contains(q1), "List by Query Name, Status,Time 
Range,User Failed");
+    Assert.assertFalse(list3.contains(q2), "List by Query Name, Status,Time 
Range,User Failed");
+    Assert.assertFalse(list3.contains(q3), "List by Query Name, Status,Time 
Range,User Failed");
+
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/44bb7edb/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
----------------------------------------------------------------------
diff --git 
a/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
 
b/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
index 0dad6b3..bbe438f 100644
--- 
a/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
+++ 
b/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 
 import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
@@ -74,12 +75,6 @@ public class SessionResourceTests extends BaseTestClass {
   private final String hiveUdfJar = "hiveudftest.jar";
   private final String serverResourcePath = "/tmp/regression/resources";
 
-  private static Map<String, String> defaultParams = new HashMap<String, 
String>();
-  static {
-    defaultParams.put("lens.query.enable.persistent.resultset", "false");
-    defaultParams.put("lens.query.enable.persistent.resultset.indriver", 
"false");
-  }
-
   private static String newParamsKey = "datanucleus.autoCreateSchema";
   private static String newParamsValue = "false";
   private static String createSleepFunction = "CREATE TEMPORARY FUNCTION sleep 
AS 'SampleUdf'";
@@ -115,8 +110,9 @@ public class SessionResourceTests extends BaseTestClass {
     MapBuilder query = new MapBuilder("sessionid", sessionHandle);
     query.put("verbose", "true");
     Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, 
query);
-    String responseString = response.readEntity(String.class);
-    HashMap<String, String> map = Util.stringListToMap(responseString);
+    AssertUtil.assertSucceededResponse(response);
+    StringList strList = response.readEntity(new 
GenericType<StringList>(StringList.class));
+    HashMap<String, String> map = Util.stringListToMap(strList);
     if (map == null){
       return false;
     }
@@ -171,8 +167,11 @@ public class SessionResourceTests extends BaseTestClass {
     MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
     query.put("key", "datanucleus.autoCreateSchema");
     response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
-    String responseString = response.readEntity(String.class);
-    HashMap<String, String> map = Util.stringListToMap(responseString);
+    AssertUtil.assertSucceededResponse(response);
+
+    StringList strList = response.readEntity(new 
GenericType<StringList>(StringList.class));
+    HashMap<String, String> map = Util.stringListToMap(strList);
+
     Assert.assertEquals(map.get("datanucleus.autoCreateSchema"),
             newParamsValue, "From Session Params Put");
     Assert.assertEquals(map.size(), 1, "Params List contains more than one 
param");
@@ -186,8 +185,9 @@ public class SessionResourceTests extends BaseTestClass {
     MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
     query.put("key", undefinedParamsKey);
     Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, 
query);
-    String responseString = response.readEntity(String.class);
-    HashMap<String, String> map = Util.stringListToMap(responseString);
+    AssertUtil.assertSucceededResponse(response);
+    StringList strList = response.readEntity(new 
GenericType<StringList>(StringList.class));
+    HashMap<String, String> map = Util.stringListToMap(strList);
     Assert.assertNull(map, "Get should have returned empty params list, but 
didnt");
   }
 
@@ -211,8 +211,11 @@ public class SessionResourceTests extends BaseTestClass {
     MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
     query.put("key", "datanucleus.autoCreateSchema");
     response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
-    String responseString = response.readEntity(String.class);
-    HashMap<String, String> map = Util.stringListToMap(responseString);
+    AssertUtil.assertSucceededResponse(response);
+
+    StringList strList = response.readEntity(new 
GenericType<StringList>(StringList.class));
+    HashMap<String, String> map = Util.stringListToMap(strList);
+
     Assert.assertEquals(map.get("datanucleus.autoCreateSchema"),
             newParamsValue, "From Session Params Put");
     Assert.assertEquals(map.size(), 1, "Params List contains more than one 
param");
@@ -224,7 +227,6 @@ public class SessionResourceTests extends BaseTestClass {
 
     String path = hdfsJarPath + "/" + hiveUdfJar;
     sHelper.addResourcesJar(path);
-    sHelper.setAndValidateParam(defaultParams);
 
     QueryHandle queryHandle = (QueryHandle) 
qHelper.executeQuery(createSleepFunction).getData();
     LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
@@ -247,7 +249,6 @@ public class SessionResourceTests extends BaseTestClass {
 
     String path = serverResourcePath + "/" + hiveUdfJar;
     sHelper.addResourcesJar(path);
-    sHelper.setAndValidateParam(defaultParams);
 
     QueryHandle queryHandle = (QueryHandle) 
qHelper.executeQuery(createSleepFunction).getData();
     LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);

Reply via email to