You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ar...@apache.org on 2016/10/04 07:48:47 UTC
[2/2] lens git commit: LENS-1271 : Regression tests for Saved Query
and Scheduler feature
LENS-1271 : Regression tests for Saved Query and Scheduler feature
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/5a18cce8
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/5a18cce8
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/5a18cce8
Branch: refs/heads/master
Commit: 5a18cce85185c554193620c63523c0811e097707
Parents: bf25ac5
Author: Archana H <ar...@apache.org>
Authored: Tue Oct 4 13:18:09 2016 +0530
Committer: Archana H <ar...@apache.org>
Committed: Tue Oct 4 13:18:09 2016 +0530
----------------------------------------------------------------------
lens-regression/pom.xml | 4 +-
.../regression/core/constants/SessionURL.java | 1 +
.../regression/core/helpers/LensHelper.java | 58 ----
.../core/helpers/LensServerHelper.java | 20 ++
.../core/helpers/MetastoreHelper.java | 18 +-
.../regression/core/helpers/QueryHelper.java | 4 +-
.../core/helpers/SavedQueryResourceHelper.java | 212 ++++++++++++++
.../core/helpers/ScheduleResourceHelper.java | 238 ++++++++++++++++
.../core/helpers/ServiceManagerHelper.java | 32 +--
.../regression/core/helpers/SessionHelper.java | 15 +-
.../core/testHelper/BaseTestClass.java | 33 +--
.../lens/regression/core/type/MapBuilder.java | 5 +
.../apache/lens/regression/util/AssertUtil.java | 145 ++--------
.../org/apache/lens/regression/util/Util.java | 50 +++-
.../apache/lens/regression/ITMetricsTest.java | 9 -
.../apache/lens/regression/ITPriorityTests.java | 9 +-
.../apache/lens/regression/ITRestartTests.java | 5 -
.../lens/regression/ITStreamingTests.java | 14 +-
.../apache/lens/regression/SessionTests.java | 5 -
.../lens/regression/client/ITListQueryTest.java | 5 -
.../regression/client/ITPreparedQueryTests.java | 39 +--
.../lens/regression/client/ITQueryApiTests.java | 85 ++++--
.../regression/client/ITSavedQueryTests.java | 245 ++++++++++++++++
.../regression/client/ITScheduleQueryTests.java | 284 +++++++++++++++++++
.../lens/regression/client/KillQueryTests.java | 10 +-
.../regression/client/SessionResourceTests.java | 107 +++++--
.../regression/config/ITServerConfigTests.java | 61 ++--
.../regression/config/ITSessionConfigTests.java | 21 +-
.../lens/regression/throttling/ITCostTests.java | 9 +-
.../lens/regression/throttling/Throttling.java | 71 +++--
pom.xml | 12 +
31 files changed, 1400 insertions(+), 426 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/pom.xml
----------------------------------------------------------------------
diff --git a/lens-regression/pom.xml b/lens-regression/pom.xml
index 5deb373..13dd552 100644
--- a/lens-regression/pom.xml
+++ b/lens-regression/pom.xml
@@ -78,6 +78,7 @@
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
@@ -142,8 +143,7 @@
</configuration>
</plugin>
-
- </plugins>
+</plugins>
</build>
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/constants/SessionURL.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/constants/SessionURL.java b/lens-regression/src/main/java/org/apache/lens/regression/core/constants/SessionURL.java
index 365146b..f471381 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/constants/SessionURL.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/constants/SessionURL.java
@@ -30,5 +30,6 @@ public class SessionURL {
public static final String SESSION_ADD_RESOURCE_URL = SESSION_BASE_URL + "/resources/add";
public static final String SESSION_REMOVE_RESOURCE_URL = SESSION_BASE_URL + "/resources/delete";
public static final String SESSION_LIST_RESOURCE_URL = SESSION_BASE_URL + "/resources/list";
+ public static final String SESSIONS_LIST_URL = SESSION_BASE_URL + "/sessions";
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensHelper.java
deleted file mode 100644
index c74da5d..0000000
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensHelper.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * 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.core.helpers;
-
-public class LensHelper {
-
- protected QueryHelper queryHelper;
- protected MetastoreHelper metastoreHelper;
- protected SessionHelper sessionHelper;
- protected LensServerHelper serverHelper;
- protected String envFileName;
-
- public LensHelper(String envFileName) {
- this.envFileName = envFileName;
- queryHelper = new QueryHelper(envFileName);
- metastoreHelper = new MetastoreHelper(envFileName);
- sessionHelper = new SessionHelper(envFileName);
- serverHelper = new LensServerHelper(envFileName);
- }
-
- public QueryHelper getQueryHelper() {
- return queryHelper;
- }
-
- public MetastoreHelper getMetastoreHelper() {
- return metastoreHelper;
- }
-
- public SessionHelper getSessionHelper() {
- return sessionHelper;
- }
-
- public LensServerHelper getServerHelper() {
- return serverHelper;
- }
-
- public String getEnvFileName() {
- return envFileName;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensServerHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensServerHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensServerHelper.java
index 8019182..093af8f 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensServerHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/LensServerHelper.java
@@ -61,5 +61,25 @@ public class LensServerHelper extends ServiceManagerHelper {
AssertUtil.assertSucceededResponse(response);
}
+
+ public void stop() throws JSchException, IOException, InterruptedException, LensException {
+ int counter = 0;
+ Util.runRemoteCommand("bash /usr/local/lens/server/bin/lens-ctl stop");
+ }
+
+ public void start() throws JSchException, IOException, InterruptedException, LensException {
+ int counter = 0;
+ Util.runRemoteCommand("bash /usr/local/lens/server/bin/lens-ctl start");
+
+ Response response = this.exec("get", "", servLens, null, null, MediaType.TEXT_PLAIN_TYPE, MediaType.TEXT_PLAIN);
+ while (response == null && counter < 40) {
+ log.info("Waiting for Lens server to come up ");
+ Thread.sleep(1000);
+ response = this.exec("get", "", servLens, null, null, MediaType.TEXT_PLAIN_TYPE, MediaType.TEXT_PLAIN);
+ counter++;
+ }
+
+ AssertUtil.assertSucceededResponse(response);
+ }
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/MetastoreHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/MetastoreHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/MetastoreHelper.java
index e993256..e2ae836 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/MetastoreHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/MetastoreHelper.java
@@ -125,7 +125,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
Response response = this
.exec("post", MetastoreURL.METASTORE_DATABASES_URL, servLens, null, query, MediaType.APPLICATION_XML_TYPE, null,
dbName);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void createDatabase(String dbName) throws JAXBException, LensException {
@@ -143,7 +143,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
query.put("cascade", "true");
Response response = this.exec("delete", MetastoreURL.METASTORE_DATABASES_URL + "/" + dbName, servLens, null, query,
MediaType.APPLICATION_XML_TYPE, null);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void dropDatabase(String dbName) throws JAXBException, LensException {
@@ -158,7 +158,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
Response response = this
.exec("post", MetastoreURL.METASTORE_STORAGES_URL, servLens, null, query, MediaType.APPLICATION_XML_TYPE, null,
storageString);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void createStorage(XStorage storage) throws Exception {
@@ -170,7 +170,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
Response response = this
.exec("delete", MetastoreURL.METASTORE_STORAGES_URL + "/" + storageName, servLens, null, query,
MediaType.APPLICATION_XML_TYPE, null);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void dropStorage(String storageName) throws JAXBException, LensException {
@@ -195,7 +195,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
Response response = this
.exec("post", MetastoreURL.METASTORE_CUBES_URL, servLens, null, query, MediaType.APPLICATION_XML_TYPE, null,
cubeString);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void createCube(XCube cube) throws Exception {
@@ -212,7 +212,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
Response response = this
.exec("post", MetastoreURL.METASTORE_FACTS_URL, servLens, null, null, MediaType.MULTIPART_FORM_DATA_TYPE,
MediaType.APPLICATION_XML, formData.getForm());
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void createFacts(XFactTable facts) throws Exception {
@@ -311,7 +311,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
String cubeString = Util.convertObjectToXml(cube, XCube.class, "createXCube");
Response response = this.exec("put", MetastoreURL.METASTORE_CUBES_URL + "/" + cubeName, servLens, null, query,
MediaType.APPLICATION_XML_TYPE, null, cubeString);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void updateCube(XCube cube, String cubeName) throws Exception {
@@ -322,7 +322,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
Response response = this.exec("delete", MetastoreURL.METASTORE_CUBES_URL + "/" + cubeName, servLens, null, query,
MediaType.APPLICATION_XML_TYPE, null);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void dropCube(String cubeName) throws JAXBException, LensException {
@@ -339,7 +339,7 @@ public class MetastoreHelper extends ServiceManagerHelper {
Response response = this
.exec("post", MetastoreURL.METASTORE_DIMTABLES_URL, servLens, null, null, MediaType.MULTIPART_FORM_DATA_TYPE,
MediaType.APPLICATION_XML, formData.getForm());
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void createDimTable(XDimensionTable dt) throws Exception {
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
index dbbb4aa..c5fecae 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
@@ -127,7 +127,7 @@ public class QueryHelper extends ServiceManagerHelper {
}
Response response = this.exec("post", QueryURL.QUERY_URL, servLens, null, null, MediaType.MULTIPART_FORM_DATA_TYPE,
MediaType.APPLICATION_XML, formData.getForm());
- LensAPIResult result = response.readEntity(new GenericType<LensAPIResult>(){});
+ LensAPIResult result = response.readEntity(LensAPIResult.class);
return result;
}
@@ -472,7 +472,7 @@ public class QueryHelper extends ServiceManagerHelper {
}
Response response = this.exec("post", QueryURL.PREPAREDQUERY_URL + queryHandle.toString(), servLens, null, null,
MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
- QueryHandleWithResultSet result = response.readEntity(new GenericType<QueryHandleWithResultSet>(){});
+ QueryHandleWithResultSet result = response.readEntity(QueryHandleWithResultSet.class);
return result;
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SavedQueryResourceHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SavedQueryResourceHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SavedQueryResourceHelper.java
new file mode 100644
index 0000000..6a11f26
--- /dev/null
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SavedQueryResourceHelper.java
@@ -0,0 +1,212 @@
+/**
+ * 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.core.helpers;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.ws.rs.core.GenericType;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+import org.apache.lens.api.query.QueryHandle;
+import org.apache.lens.api.query.save.*;
+import org.apache.lens.api.result.LensAPIResult;
+import org.apache.lens.regression.core.type.FormBuilder;
+import org.apache.lens.regression.core.type.MapBuilder;
+import org.apache.lens.regression.util.AssertUtil;
+import org.apache.lens.server.api.error.LensException;
+
+import org.codehaus.jackson.map.ObjectMapper;
+
+import org.glassfish.jersey.media.multipart.FormDataBodyPart;
+import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class SavedQueryResourceHelper extends ServiceManagerHelper {
+
+ public static final String SAVED_QUERY_BASE_URL = "/queryapi/savedqueries";
+
+ public SavedQueryResourceHelper() {
+ }
+
+ public SavedQueryResourceHelper(String envFileName) {
+ super(envFileName);
+ }
+
+
+ public ListResponse listSavedQueries(String start, String count, String sessionHandleString) throws JAXBException {
+ MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "start", start, "count", count);
+ Response response = this.exec("get", SAVED_QUERY_BASE_URL, servLens, null, query);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(ListResponse.class);
+ }
+
+ public ListResponse getSavedQueries(String start, String count) throws JAXBException {
+ return listSavedQueries(start, count, sessionHandleString);
+ }
+
+ public ResourceModifiedResponse createSavedQuery(String query, String name, List<Parameter> paramList,
+ String sessionHandleString, MediaType inputMediaType) throws JAXBException, IOException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
+
+ SavedQuery savedQuery = new SavedQuery();
+ savedQuery.setQuery(query);
+ savedQuery.setName(name);
+ savedQuery.setParameters(paramList);
+ savedQuery.setDescription("description");
+
+ Response response = null;
+
+ if (inputMediaType!=null && inputMediaType.equals(MediaType.APPLICATION_XML_TYPE)) {
+
+ Marshaller m = JAXBContext.newInstance(SavedQuery.class).createMarshaller();
+ StringWriter xmlStringWriter = new StringWriter();
+ m.marshal(savedQuery, xmlStringWriter);
+ response = this.exec("post", SAVED_QUERY_BASE_URL, servLens, null, map, inputMediaType,
+ MediaType.APPLICATION_XML, xmlStringWriter.toString());
+
+ } else {
+ String json = "{\"savedQuery\":" + (new ObjectMapper().writeValueAsString(savedQuery)) + "}";
+ response = this.exec("post", SAVED_QUERY_BASE_URL, servLens, null, map, inputMediaType,
+ MediaType.APPLICATION_XML, json);
+ }
+
+ AssertUtil.assertCreated(response);
+ response.getStringHeaders().putSingle(HttpHeaders.CONTENT_TYPE, "application/xml");
+ return response.readEntity(ResourceModifiedResponse.class);
+ }
+
+ public Parameter getParameter(String name, ParameterDataType dataType, String defaultValue,
+ ParameterCollectionType collectionType){
+
+ Parameter p = new Parameter(name);
+ p.setDataType(dataType);
+ p.setCollectionType(collectionType);
+ p.setDisplayName("param display name");
+
+ if (collectionType.equals(ParameterCollectionType.MULTIPLE)){
+ p.setDefaultValue(defaultValue.split(","));
+ }else {
+ p.setDefaultValue(new String[]{defaultValue});
+ }
+ return p;
+ }
+
+ public ResourceModifiedResponse createSavedQuery(String query, String name, List<Parameter> paramList)
+ throws JAXBException, IOException {
+ return createSavedQuery(query, name, paramList, sessionHandleString, MediaType.APPLICATION_JSON_TYPE);
+ }
+
+ public ResourceModifiedResponse createSavedQuery(String query, String name, List<Parameter> paramList, String session)
+ throws JAXBException, IOException {
+ return createSavedQuery(query, name, paramList, session, MediaType.APPLICATION_JSON_TYPE);
+ }
+
+
+ public SavedQuery getSavedQuery(Long queryId, String sessionHandleString) throws JAXBException {
+ MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "id", Long.toString(queryId));
+ Response response = this.exec("get", SAVED_QUERY_BASE_URL + "/" + queryId , servLens, null, query);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(SavedQuery.class);
+ }
+
+ public SavedQuery getSavedQuery(Long queryId) throws JAXBException, LensException {
+ return getSavedQuery(queryId, sessionHandleString);
+ }
+
+ public ResourceModifiedResponse deleteSavedQuery(Long queryId, String sessionHandleString) throws JAXBException {
+ MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "id", Long.toString(queryId));
+ Response response = this.exec("delete", SAVED_QUERY_BASE_URL + "/" + queryId , servLens, null, query);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(ResourceModifiedResponse.class);
+ }
+
+ public void deleteAllSavedQueries() throws JAXBException {
+ ListResponse savedQueryList = listSavedQueries("0", "100", sessionHandleString);
+ if (savedQueryList.getResoures() != null){
+ for(SavedQuery s: savedQueryList.getResoures()){
+ deleteSavedQuery(s.getId(), sessionHandleString);
+ }
+ }
+ }
+
+ public ResourceModifiedResponse updateSavedQuery(Long queryId, String sessionHandleString, SavedQuery savedQuery)
+ throws JAXBException, IOException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
+ String json = "{\"savedQuery\":" + (new ObjectMapper().writeValueAsString(savedQuery)) + "}";
+ Response response = this.exec("put", SAVED_QUERY_BASE_URL + "/" + Long.toString(queryId), servLens, null, map,
+ MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_XML, json);
+ AssertUtil.assertCreated(response);
+ response.getStringHeaders().putSingle(HttpHeaders.CONTENT_TYPE, "application/xml");
+ return response.readEntity(ResourceModifiedResponse.class);
+ }
+
+ public LensAPIResult<QueryHandle> runSavedQuery(Long queryId, String sessionHandleString, String conf,
+ HashMap<String, String> params) throws JAXBException {
+
+ MapBuilder map = new MapBuilder(params);
+ FormBuilder formData = new FormBuilder("sessionid", sessionHandleString);
+
+ if (conf == null) {
+ conf = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><conf />";
+ }
+ formData.getForm().bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf")
+ .build(), conf, MediaType.APPLICATION_XML_TYPE));
+
+ Response response = this.exec("post", SAVED_QUERY_BASE_URL + "/" + queryId , servLens, null, map,
+ MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
+
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(new GenericType<LensAPIResult<QueryHandle>>(){});
+ }
+
+ public LensAPIResult<QueryHandle> runSavedQuery(Long queryId, String sessionHandleString,
+ HashMap<String, String> params) throws JAXBException {
+ return runSavedQuery(queryId, sessionHandleString, null, params);
+ }
+
+ public LensAPIResult<QueryHandle> runSavedQuery(Long queryId, HashMap<String, String> params) throws JAXBException {
+ return runSavedQuery(queryId, sessionHandleString, null, params);
+ }
+
+ public ParameterParserResponse getSavedQueryParameter(String query, String sessionHandleString) throws JAXBException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
+ FormBuilder formData = new FormBuilder("query", query);
+
+ Response response = this.exec("post", SAVED_QUERY_BASE_URL + "/parameters", servLens, null, map,
+ MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
+ AssertUtil.assertSucceededResponse(response);
+ response.getStringHeaders().putSingle(HttpHeaders.CONTENT_TYPE, "application/xml");
+ return response.readEntity(ParameterParserResponse.class);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
new file mode 100644
index 0000000..f2883f0
--- /dev/null
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
@@ -0,0 +1,238 @@
+/**
+ * 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.core.helpers;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.List;
+
+import javax.ws.rs.core.*;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.datatype.DatatypeConfigurationException;
+
+import org.apache.lens.api.APIResult;
+import org.apache.lens.api.ToXMLString;
+import org.apache.lens.api.scheduler.*;
+import org.apache.lens.regression.core.type.MapBuilder;
+import org.apache.lens.regression.util.AssertUtil;
+import org.apache.lens.regression.util.Util;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class ScheduleResourceHelper extends ServiceManagerHelper {
+
+ public static final String SCHEDULER_BASE_URL = "/scheduler";
+ public static final String SCHEDULER_JOBS_URL = SCHEDULER_BASE_URL + "/jobs";
+ public static final String SCHEDULER_INSTANCES_URL = SCHEDULER_BASE_URL + "/instances";
+
+ public ScheduleResourceHelper() {
+ }
+
+ public ScheduleResourceHelper(String envFileName) {
+ super(envFileName);
+ }
+
+
+ public String submitJob(String action, XJob job, String sessionHandleString)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
+ if (action != null) {
+ map.put("action", action);
+ }
+
+ JAXBElement<XJob> xmlJob = new ObjectFactory().createJob(job);
+ GenericEntity<JAXBElement<XJob>> entry = new GenericEntity<JAXBElement<XJob>>(xmlJob){};
+ Response response = this.exec("post", SCHEDULER_JOBS_URL, servLens, null, map, MediaType.APPLICATION_XML_TYPE,
+ MediaType.APPLICATION_XML, entry);
+ AssertUtil.assertSucceededResponse(response);
+ SchedulerJobHandle handle = response.readEntity(SchedulerJobHandle.class);
+ return handle.getHandleIdString();
+ }
+
+ public String submitJob(XJob job, String sessionHandleString)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+ return submitJob("submit", job, sessionHandleString);
+ }
+
+ public String submitNScheduleJob(XJob job, String sessionHandleString)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+ return submitJob("submit_and_schedule", job, sessionHandleString);
+ }
+
+ public XJob getXJob(String name, String query, String db, String startTime, String endTime, XFrequencyEnum frequency)
+ throws ParseException, DatatypeConfigurationException {
+
+ XJob job = new XJob();
+ job.setName(name);
+ job.setStartTime(Util.getGregorianCalendar(startTime));
+ job.setEndTime(Util.getGregorianCalendar(endTime));
+ job.setTrigger(getXTrigger(frequency));
+ job.setExecution(getXExecution(query, db));
+ return job;
+ }
+
+ public XJob getXJob(String name, String query, String db, String startTime, String endTime, String cronExpression)
+ throws ParseException, DatatypeConfigurationException {
+
+ XJob job = new XJob();
+ job.setName(name);
+ job.setStartTime(Util.getGregorianCalendar(startTime));
+ job.setEndTime(Util.getGregorianCalendar(endTime));
+ job.setTrigger(getXTrigger(cronExpression));
+ job.setExecution(getXExecution(query, db));
+ return job;
+ }
+
+ public XTrigger getXTrigger(XFrequencyEnum frequency){
+
+ XTrigger xTrigger = new XTrigger();
+ XFrequency xf = new XFrequency();
+ xf.setEnum(frequency);
+ xTrigger.setFrequency(xf);
+ return xTrigger;
+ }
+
+ public XTrigger getXTrigger(String cronExpression){
+
+ XTrigger xTrigger = new XTrigger();
+ XFrequency xf = new XFrequency();
+ xf.setCronExpression(cronExpression);
+ xTrigger.setFrequency(xf);
+ return xTrigger;
+ }
+
+ public XExecution getXExecution(String query, String db){
+ return getXExecution(query, db, null, null);
+ }
+
+ public XExecution getXExecution(String query, String db, List<MapType> queryConfig, List<MapType> sessionConfig){
+ XExecution execution = new XExecution();
+
+ XJobQuery xJobQuery = new XJobQuery();
+ xJobQuery.setQuery(query);
+ if (queryConfig != null){
+ xJobQuery.withConf(queryConfig);
+ }
+
+ XSessionType sessionType = new XSessionType();
+ if (db == null){
+ db = getCurrentDB();
+ }
+ sessionType.setDb(db);
+ if (sessionConfig != null){
+ sessionType.withConf(sessionConfig);
+ }
+
+ execution.setQuery(xJobQuery);
+ execution.setSession(sessionType);
+ return execution;
+ }
+
+ public XJob getJobDefinition(String jobHandle, String sessionId, MediaType inputMedia, String outputMedia){
+ MapBuilder map = new MapBuilder("sessionid", sessionId);
+ Response response = this.exec("get", SCHEDULER_JOBS_URL + "/" + jobHandle , servLens, null, map, inputMedia,
+ outputMedia);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(XJob.class);
+ }
+
+ public XJob getJobDefinition(String jobHandle, String sessionId){
+ return getJobDefinition(jobHandle, sessionId, MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML);
+ }
+
+ public APIResult deleteJob(String jobHandle, String sessionId){
+ MapBuilder map = new MapBuilder("sessionid", sessionId);
+ Response response = this.exec("delete", SCHEDULER_JOBS_URL + "/" + jobHandle , servLens, null, map, null,
+ MediaType.APPLICATION_JSON);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(APIResult.class);
+ }
+
+ public APIResult updateJob(XJob job, String jobHandle, String sessionHandleString)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
+ JAXBElement<XJob> xmlJob = new ObjectFactory().createJob(job);
+
+ Response response = this.exec("put", SCHEDULER_JOBS_URL + "/" + jobHandle, servLens, null, map,
+ MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML, ToXMLString.toString(xmlJob));
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(APIResult.class);
+ }
+
+ public APIResult updateJob(String jobHandle, String action, String sessionHandleString)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString, "action", action);
+ Response response = this.exec("post", SCHEDULER_JOBS_URL + "/" + jobHandle, servLens, null, map);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(APIResult.class);
+ }
+
+ public SchedulerJobInfo getJobDetails(String jobHandle, String sessionHandleString){
+
+ MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
+ Response response = this.exec("get", SCHEDULER_JOBS_URL + "/" + jobHandle + "/info", servLens, null, map,
+ MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(SchedulerJobInfo.class);
+ }
+
+
+ public SchedulerJobState getJobStatus(String jobHandle, String sessionHandleString){
+ SchedulerJobInfo jobInfo = getJobDetails(jobHandle, sessionHandleString);
+ return jobInfo.getJobState();
+ }
+
+ public SchedulerJobState getJobStatus(String jobHandle){
+ SchedulerJobInfo jobInfo = getJobDetails(jobHandle, sessionHandleString);
+ return jobInfo.getJobState();
+ }
+
+ public List<SchedulerJobInstanceInfo> getAllInstancesOfJob(String jobHandle, String numResults, String sessionId)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionId, "numResults", numResults);
+ Response response = this.exec("get", SCHEDULER_JOBS_URL + "/" + jobHandle + "/instances", servLens, null, map);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(new GenericType<List<SchedulerJobInstanceInfo>>(){});
+ }
+
+ public SchedulerJobInstanceInfo getInstanceDetails(String instanceHandle, String sessionId)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionId);
+ Response response = this.exec("get", SCHEDULER_INSTANCES_URL + "/" + instanceHandle , servLens, null, map);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(SchedulerJobInstanceInfo.class);
+ }
+
+ public APIResult updateInstance(String instanceHandle, String action, String sessionId)
+ throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+ MapBuilder map = new MapBuilder("sessionid", sessionId, "action", action);
+ Response response = this.exec("post", SCHEDULER_INSTANCES_URL + "/" + instanceHandle , servLens, null, map);
+ AssertUtil.assertSucceededResponse(response);
+ return response.readEntity(APIResult.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ServiceManagerHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ServiceManagerHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ServiceManagerHelper.java
index eb49827..2370f3e 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ServiceManagerHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ServiceManagerHelper.java
@@ -66,7 +66,7 @@ public abstract class ServiceManagerHelper {
public static WebTarget init() {
Client client = ClientBuilder.newBuilder().register(MultiPartFeature.class).build();
- String baseUri = Util.getProperty("lens.baseurl");
+ String baseUri = Util.getProperty(LENS_BASE_URL);
servLens = client.target(UriBuilder.fromUri(baseUri).build());
return servLens;
}
@@ -138,13 +138,17 @@ public abstract class ServiceManagerHelper {
return exec(functionName, path, service, headers, queryParams, null, null, null);
}
+ public <T> Response exec(String functionName, String path, WebTarget service, FormDataMultiPart headers,
+ MapBuilder queryParams, MediaType inputMediaType, String outputMediaType, T inputObject) {
+
+ Response cl = (Response) exec(functionName, path, service, headers, queryParams, inputMediaType, outputMediaType,
+ Response.class, inputObject);
+ return cl;
+ }
+
public <T> Object exec(String functionName, String path, WebTarget service, FormDataMultiPart headers,
MapBuilder queryParams, MediaType inputMediaType, String outputMediaType, Class responseClass, T inputObject) {
- Object result;
- WebTarget builder = null;
- String className = this.getClass().getName();
-
if (outputMediaType == null) {
outputMediaType = MediaType.APPLICATION_XML;
}
@@ -152,7 +156,7 @@ public abstract class ServiceManagerHelper {
inputMediaType = MediaType.APPLICATION_XML_TYPE;
}
- builder = service.path(path);
+ WebTarget builder = service.path(path);
if (queryParams != null) {
for (Map.Entry<String, String> queryMapEntry : queryParams.getMap().entrySet()) {
builder = builder.queryParam(queryMapEntry.getKey(), queryMapEntry.getValue());
@@ -163,13 +167,13 @@ public abstract class ServiceManagerHelper {
functionName = "exec" + functionName.toUpperCase();
try {
- Class methodClass = Class.forName(className);
+ Class methodClass = Class.forName(this.getClass().getName());
Object methodObject = methodClass.newInstance();
Method method = methodObject.getClass()
.getMethod(functionName, Invocation.Builder.class, inputMediaType.getClass(), responseClass.getClass(),
Object.class);
- result = method.invoke(methodObject, build, inputMediaType, responseClass, inputObject);
+ Object result = method.invoke(methodObject, build, inputMediaType, responseClass, inputObject);
return result;
} catch (Exception e) {
@@ -178,19 +182,7 @@ public abstract class ServiceManagerHelper {
}
}
- public <T> Response exec(String functionName, String path, WebTarget service, FormDataMultiPart headers,
- MapBuilder queryParams, MediaType inputMediaType, String outputMediaType, T inputObject) {
- Class responseClass = Response.class;
- Response cl = null;
- try {
- cl = (Response) exec(functionName, path, service, headers, queryParams, inputMediaType, outputMediaType,
- responseClass, inputObject);
- } catch (Exception e) {
- log.error("Exception in exec", e);
- }
- return cl;
- }
public <T> Object execPUT(Invocation.Builder builder, MediaType inputMediaType, Class<?> responseClass,
T inputObject) {
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
index 6c01d1e..d996b39 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
@@ -20,6 +20,7 @@
package org.apache.lens.regression.core.helpers;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.ws.rs.core.GenericType;
@@ -28,6 +29,7 @@ import javax.ws.rs.core.Response;
import org.apache.lens.api.LensConf;
import org.apache.lens.api.StringList;
+import org.apache.lens.api.session.UserSessionInfo;
import org.apache.lens.regression.core.constants.SessionURL;
import org.apache.lens.regression.core.type.FormBuilder;
import org.apache.lens.regression.core.type.MapBuilder;
@@ -119,7 +121,7 @@ public class SessionHelper extends ServiceManagerHelper {
MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
Response response = this.exec("delete", SessionURL.SESSION_BASE_URL, servLens, null, query, null,
outputMediaType, null);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
log.info("Closed Session : {}", sessionHandleString);
}
@@ -191,7 +193,7 @@ public class SessionHelper extends ServiceManagerHelper {
Response response = this.exec("put", SessionURL.SESSION_ADD_RESOURCE_URL, servLens, null, null,
MediaType.MULTIPART_FORM_DATA_TYPE, null, formData.getForm());
log.info("Response : {}", response);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void addResourcesJar(String path) throws LensException {
@@ -213,7 +215,7 @@ public class SessionHelper extends ServiceManagerHelper {
Response response = this.exec("put", SessionURL.SESSION_REMOVE_RESOURCE_URL, servLens, null, null,
MediaType.MULTIPART_FORM_DATA_TYPE, null, formData.getForm());
log.info("Response : {}", response);
- AssertUtil.assertSucceeded(response);
+ AssertUtil.assertSucceededResult(response);
}
public void removeResourcesJar(String path) throws LensException {
@@ -233,4 +235,11 @@ public class SessionHelper extends ServiceManagerHelper {
return getSessionParam(sessionHandleString, param);
}
+ public List<UserSessionInfo> getSessionList() throws Exception {
+ Response response = this.exec("get", SessionURL.SESSIONS_LIST_URL, servLens, null, null);
+ AssertUtil.assertSucceededResponse(response);
+ List<UserSessionInfo> sessionInfoList = response.readEntity(new GenericType<List<UserSessionInfo>>(){});
+ return sessionInfoList;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/testHelper/BaseTestClass.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/testHelper/BaseTestClass.java b/lens-regression/src/main/java/org/apache/lens/regression/core/testHelper/BaseTestClass.java
index f442983..d67a6a9 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/testHelper/BaseTestClass.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/testHelper/BaseTestClass.java
@@ -19,29 +19,26 @@
package org.apache.lens.regression.core.testHelper;
-import org.apache.lens.regression.core.helpers.LensHelper;
-import org.apache.lens.regression.core.helpers.LensServerHelper;
-import org.apache.lens.regression.core.helpers.MetastoreHelper;
-import org.apache.lens.regression.core.helpers.QueryHelper;
-import org.apache.lens.regression.core.helpers.SessionHelper;
+import org.apache.lens.regression.core.helpers.*;
public class BaseTestClass {
- private LensHelper lensHelper;
- private QueryHelper qHelper;
- private MetastoreHelper mHelper;
- private SessionHelper sHelper;
- private LensServerHelper lens;
+ protected QueryHelper qHelper;
+ protected MetastoreHelper mHelper;
+ protected SessionHelper sHelper;
+ protected LensServerHelper lens;
+ protected SavedQueryResourceHelper savedQueryResourceHelper;
+ protected ScheduleResourceHelper scheduleHelper;
public static final String LENS_PROPERTIES = "lens.properties";
public BaseTestClass() {
-
- lensHelper = new LensHelper(LENS_PROPERTIES);
- qHelper = lensHelper.getQueryHelper();
- mHelper = lensHelper.getMetastoreHelper();
- sHelper = lensHelper.getSessionHelper();
- lens = lensHelper.getServerHelper();
+ qHelper = new QueryHelper(LENS_PROPERTIES);
+ mHelper = new MetastoreHelper(LENS_PROPERTIES);
+ sHelper = new SessionHelper(LENS_PROPERTIES);
+ lens = new LensServerHelper(LENS_PROPERTIES);
+ savedQueryResourceHelper = new SavedQueryResourceHelper(LENS_PROPERTIES);
+ scheduleHelper = new ScheduleResourceHelper(LENS_PROPERTIES);
}
public QueryHelper getQueryHelper() {
@@ -60,5 +57,9 @@ public class BaseTestClass {
return lens;
}
+ public SavedQueryResourceHelper getSavedQueryResourceHelper() {
+ return savedQueryResourceHelper;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/core/type/MapBuilder.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/type/MapBuilder.java b/lens-regression/src/main/java/org/apache/lens/regression/core/type/MapBuilder.java
index 59d99a3..96207c6 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/type/MapBuilder.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/type/MapBuilder.java
@@ -20,6 +20,7 @@
package org.apache.lens.regression.core.type;
import java.util.HashMap;
+import java.util.Map;
import org.apache.lens.server.api.util.LensUtil;
@@ -55,6 +56,10 @@ public class MapBuilder {
map.put(key, value);
}
+ public void put(Map<String, String> map) {
+ this.map.putAll(map);
+ }
+
public String get(String key) {
return map.get(key);
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java b/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
index b2af76b..b04e420 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
@@ -22,9 +22,8 @@ package org.apache.lens.regression.util;
import javax.ws.rs.core.Response;
import org.apache.lens.api.APIResult;
-import org.apache.lens.api.result.LensAPIResult;
-import org.apache.lens.api.result.LensErrorTO;
-import org.apache.lens.server.api.error.LensException;
+
+import org.testng.Assert;
import lombok.extern.slf4j.Slf4j;
@@ -37,145 +36,39 @@ public class AssertUtil {
/**
* Checks that Response status is SUCCEEDED
- *
* @param response Response
- * @throws LensException
*/
- public static void assertSucceeded(Response response) throws LensException {
- if (response.getStatus() != 200) {
- throw new LensException("Status code should be 200");
- }
- APIResult result = response.readEntity(APIResult.class);
- if (result.getStatus() != APIResult.Status.SUCCEEDED) {
- throw new LensException("Status should be SUCCEEDED");
- }
- if (result.getMessage() == null) {
- throw new LensException("Status message is null");
- }
- }
-
- /**
- * Checks that Response status is SUCCEEDED
- *
- * @param response Response
- * @throws LensException
- */
- public static void assertSucceededResponse(Response response) throws LensException {
- if (response.getStatus() != 200) {
- throw new LensException("Status code should be 200");
- }
- }
+ public static void assertSucceededResult(Response response) {
- public static void assertSucceededResponse(Response response, int expected) throws LensException {
- if (response.getStatus() != expected) {
- throw new LensException("Status code should be " + expected);
- }
+ Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
+ APIResult result = response.readEntity(APIResult.class);
+ Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
+ Assert.assertNotNull(result.getMessage());
}
- public static void assertGoneResponse(Response response) throws LensException {
- if (response.getStatus() != 410) {
- throw new LensException("Status code should be 410");
- }
+ public static void assertSucceededResponse(Response response) {
+ Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
}
- /**
- * Checks that Response status is NOT FOUND
- *
- * @param response Response
- * @throws LensException
- */
- public static void assertFailedResponse(Response response) throws LensException {
- if (response.getStatus() != 404) {
- throw new LensException("Status code should be 404");
- }
+ public static void assertCreated(Response response) {
+ Assert.assertEquals(response.getStatus(), Response.Status.CREATED.getStatusCode());
}
- /**
- * Checks that Response status is status FAILED with status code 400
- *
- * @param response Response
- * @throws LensException
- */
- public static void assertFailed(Response response) throws LensException {
- if (response.getStatus() != 400) {
- throw new LensException("Status code should be 400");
- }
- APIResult result = Util.getApiResult(response);
- if (result.getStatus() != APIResult.Status.FAILED) {
- throw new LensException("Status should be FAILED");
- }
- if (result.getMessage() == null) {
- throw new LensException("Status message is null");
- }
+ public static void assertGone(Response response) {
+ Assert.assertEquals(response.getStatus(), Response.Status.GONE.getStatusCode());
}
- /**
- * Checks that Response status is status FAILED with status code 200
- *
- * @param response Response
- * @throws LensException
- */
- public static void assertStatusFailed(Response response) throws LensException {
- if (response.getStatus() == 200) {
- throw new LensException("Status code should be 200");
- }
- APIResult result = Util.getApiResult(response);
- if (result.getStatus() == APIResult.Status.FAILED) {
- throw new LensException("Status should be FAILED");
- }
- if (result.getMessage() == null) {
- throw new LensException("Status message is null");
- }
+ public static void assertNotFound(Response response) {
+ Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
}
- /**
- * Checks that Response status is status FAILED with status code 500
- *
- * @param response Response
- * @throws LensException
- */
-
- public static void assertInternalServerError(Response response) throws LensException {
- if (response.getStatus() != 500) {
- throw new LensException("Status code should be 500");
- }
-
+ public static void assertBadRequest(Response response) {
+ Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode());
}
- public static void validateFailedResponse(int errorCode, String errorMessage, boolean payLoad, Response response,
- int httpResponseCode) throws InstantiationException, IllegalAccessException, LensException {
- String queryHandleString = response.readEntity(String.class);
- log.info(queryHandleString);
- @SuppressWarnings("unchecked") LensAPIResult errorResponse = (LensAPIResult) Util
- .getObject(queryHandleString, LensAPIResult.class);
- LensErrorTO error = errorResponse.getLensErrorTO();
- LensErrorTO expectedError = null;
- if (payLoad) {
- expectedError = LensErrorTO.composedOf(errorCode, errorMessage, "nothing", error.getPayload());
- } else {
- expectedError = LensErrorTO.composedOf(errorCode, errorMessage, "nothing");
- }
- log.info("expected Error-: " + expectedError);
- log.info("actual Error-: " + error);
- if (!error.equals(expectedError)) {
- throw new LensException("Wrong Error Response");
- }
- if (!errorResponse.areValidStackTracesPresent()) {
- throw new LensException("StackTrace should be present");
- }
- if (payLoad) {
- if (error.getPayload() == null) {
- throw new LensException("Payload should not be null");
- }
- } else {
- if (error.getPayload() != null) {
- throw new LensException("Payload should be null");
- }
- }
- if (errorResponse.isSuccessResult()) {
- throw new LensException("SuccessResponse should be false");
- }
+ public static void assertInternalServerError(Response response) {
+ Assert.assertEquals(response.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
}
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/main/java/org/apache/lens/regression/util/Util.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/util/Util.java b/lens-regression/src/main/java/org/apache/lens/regression/util/Util.java
index 2e48e80..f662490 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/util/Util.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/util/Util.java
@@ -27,6 +27,8 @@ import java.lang.reflect.Method;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Map.Entry;
import java.util.regex.Matcher;
@@ -98,7 +100,7 @@ public class Util {
return null;
}
- public static String getProperty(String property) {
+ public static String getProperty(String property){
Properties prop = Util.getPropertiesObj(PROPERTY_FILE);
return prop.getProperty(property);
}
@@ -303,7 +305,9 @@ public class Util {
public static final void prettyPrint(Document xml) throws TransformerFactoryConfigurationError, TransformerException {
xml.normalize();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
- Result output = new StreamResult(new File(localFile));
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+ StreamResult output = new StreamResult(new File(localFile));
Source input = new DOMSource(xml);
transformer.transform(input, output);
}
@@ -467,4 +471,46 @@ public class Util {
}
return value;
}
+
+
+ public static String getCurrentDate(String format){
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ return sdf.format(new Date());
+ }
+
+ public static String getFormattedDate(String epochTime, String format){
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ return sdf.format(Long.parseLong(epochTime));
+ }
+
+ public static String modifyDate(String dateString, String format, int calenderIntervalUnit, int diff)
+ throws ParseException {
+
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(sdf.parse(dateString));
+ calendar.add(calenderIntervalUnit, diff);
+ return sdf.format(calendar.getTime());
+ }
+
+ public static XMLGregorianCalendar getGregorianCalendar(String date, String format) throws ParseException,
+ DatatypeConfigurationException {
+ GregorianCalendar cal = new GregorianCalendar();
+ cal.setTime(new SimpleDateFormat(format).parse(date));
+ cal.setTimeZone(TimeZone.getTimeZone("UTC"));
+ XMLGregorianCalendar calendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
+ return calendar;
+ }
+
+ public static XMLGregorianCalendar getGregorianCalendar(String date) throws ParseException,
+ DatatypeConfigurationException {
+ return getGregorianCalendar(date, "yyyy-MM-dd HH:mm:ss"); //"yyyy-MM-dd'T'HH:mm:ss.SSSX"
+ }
+
+ public static String getDateStringFromGregorainCalender(XMLGregorianCalendar xcal, String format){
+ Date dt = xcal.toGregorianCalendar().getTime();
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ return sdf.format(dt);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/ITMetricsTest.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/ITMetricsTest.java b/lens-regression/src/test/java/org/apache/lens/regression/ITMetricsTest.java
index dad7b07..3e7afba 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/ITMetricsTest.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/ITMetricsTest.java
@@ -32,11 +32,7 @@ import org.apache.lens.api.query.LensQuery;
import org.apache.lens.api.query.QueryHandle;
import org.apache.lens.api.query.QueryStatus;
import org.apache.lens.regression.core.constants.QueryInventory;
-import org.apache.lens.regression.core.helpers.LensServerHelper;
-import org.apache.lens.regression.core.helpers.MetastoreHelper;
-import org.apache.lens.regression.core.helpers.QueryHelper;
import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
-import org.apache.lens.regression.core.helpers.SessionHelper;
import org.apache.lens.regression.core.testHelper.BaseTestClass;
import org.apache.lens.server.LensRequestListener;
import org.apache.lens.server.api.query.QueryExecutionService;
@@ -54,11 +50,6 @@ public class ITMetricsTest extends BaseTestClass {
WebTarget servLens;
String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
private static String admin = "/metrics?pretty=true";
private static Logger logger = Logger.getLogger(ITMetricsTest.class);
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/ITPriorityTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/ITPriorityTests.java b/lens-regression/src/test/java/org/apache/lens/regression/ITPriorityTests.java
index 1bae767..ee845fe 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/ITPriorityTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/ITPriorityTests.java
@@ -115,7 +115,7 @@ public class ITPriorityTests extends BaseTestClass{
QueryHandle qh = (QueryHandle) qHelper.executeQuery(query).getData();
qHelper.waitForQueryToRun(qh);
LensQuery lq = qHelper.getLensQuery(sessionHandleString, qh);
- String progressMsg = qHelper.getQueryStatus(qh).getProgressMessage();
+ String progressMsg = lq.getStatus().getProgressMessage();
logger.info("Progress msg : " + progressMsg);
String jobId = Util.getJobIdFromProgressMsg(progressMsg);
Assert.assertEquals(lq.getPriority(), priority);
@@ -158,8 +158,11 @@ public class ITPriorityTests extends BaseTestClass{
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
- QueryHandleWithResultSet qhr = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(cost60, "10000")
- .getData();
+ LensConf lensConf = new LensConf();
+ lensConf.addProperty(LensConfConstants.CANCEL_QUERY_ON_TIMEOUT, "false");
+
+ QueryHandleWithResultSet qhr = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(cost60, "10000",
+ null, sessionHandleString, lensConf).getData();
for(int i = 0; i < 6; i++){
list.add((QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData());
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/ITRestartTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/ITRestartTests.java b/lens-regression/src/test/java/org/apache/lens/regression/ITRestartTests.java
index 70d1289..5ecccb6 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/ITRestartTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/ITRestartTests.java
@@ -49,11 +49,6 @@ public class ITRestartTests extends BaseTestClass {
WebTarget servLens;
String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
private static String hiveDriver = "hive/hive1";
private static String jdbcDriver = "jdbc/jdbc1";
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/ITStreamingTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/ITStreamingTests.java b/lens-regression/src/test/java/org/apache/lens/regression/ITStreamingTests.java
index d28b2ac..4ceb218 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/ITStreamingTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/ITStreamingTests.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import javax.ws.rs.client.WebTarget;
import javax.xml.bind.JAXBException;
+import org.apache.lens.api.LensConf;
import org.apache.lens.api.query.*;
import org.apache.lens.regression.core.constants.QueryInventory;
import org.apache.lens.regression.core.helpers.*;
@@ -49,13 +50,7 @@ public class ITStreamingTests extends BaseTestClass {
private WebTarget servLens;
private String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
private static Logger logger = Logger.getLogger(ITStreamingTests.class);
-
String lensSiteConfPath = lens.getServerDir() + "/conf/lens-site.xml";
@BeforeClass(alwaysRun = true)
@@ -131,8 +126,11 @@ public class ITStreamingTests extends BaseTestClass {
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ LensConf lensConf = new LensConf();
+ lensConf.addProperty(LensConfConstants.CANCEL_QUERY_ON_TIMEOUT, "false");
+
QueryHandleWithResultSet qhr = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(
- QueryInventory.getSleepQuery("10"), "100").getData();
+ QueryInventory.getSleepQuery("5"), "10", null, sessionHandleString, lensConf).getData();
InMemoryQueryResult inmemoryResult = (InMemoryQueryResult) qhr.getResult();
Assert.assertNull(inmemoryResult);
@@ -141,7 +139,7 @@ public class ITStreamingTests extends BaseTestClass {
PersistentQueryResult persistResult = (PersistentQueryResult)qHelper.getResultSet(qhr.getQueryHandle());
Assert.assertNotNull(persistResult);
- Assert.assertEquals(persistResult.getNumRows().intValue(), 7);
+ Assert.assertEquals(persistResult.getNumRows().intValue(), 8);
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java b/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
index 255f5be..ce727a1 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
@@ -57,11 +57,6 @@ public class SessionTests extends BaseTestClass {
private WebTarget servLens;
private String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
private static Logger logger = Logger.getLogger(SessionTests.class);
@BeforeClass(alwaysRun = true)
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/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
index 1652ba3..cad2937 100644
--- 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
@@ -43,11 +43,6 @@ public class ITListQueryTest extends BaseTestClass {
WebTarget servLens;
private String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
String jdbcDriver = "jdbc/jdbc1", hiveDriver = "hive/hive1";
String sleepQuery = QueryInventory.getSleepQuery("5");
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
index 6292867..fd73ba4 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
@@ -36,11 +36,7 @@ import org.apache.lens.api.LensConf;
import org.apache.lens.api.query.*;
import org.apache.lens.regression.core.constants.QueryInventory;
import org.apache.lens.regression.core.constants.QueryURL;
-import org.apache.lens.regression.core.helpers.LensServerHelper;
-import org.apache.lens.regression.core.helpers.MetastoreHelper;
-import org.apache.lens.regression.core.helpers.QueryHelper;
import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
-import org.apache.lens.regression.core.helpers.SessionHelper;
import org.apache.lens.regression.core.testHelper.BaseTestClass;
import org.apache.lens.regression.core.type.FormBuilder;
import org.apache.lens.regression.core.type.MapBuilder;
@@ -61,11 +57,6 @@ public class ITPreparedQueryTests extends BaseTestClass {
WebTarget servLens;
String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
private static Map<String, String> defaultParams = new HashMap<String, String>();
static {
defaultParams.put(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "false");
@@ -97,7 +88,7 @@ public class ITPreparedQueryTests extends BaseTestClass {
public void testPrepareAndExecutePreparedQuery() throws Exception {
sHelper.setAndValidateParam(defaultParams);
- QueryPrepareHandle queryPrepareHandle = qHelper.submitPreparedQuery(QueryInventory.QUERY);
+ QueryPrepareHandle queryPrepareHandle = qHelper.submitPreparedQuery(QueryInventory.JDBC_DIM_QUERY);
Assert.assertNotNull(queryPrepareHandle, "Query Execute Failed");
logger.info("PREPARE QUERY HANDLE : " + queryPrepareHandle);
@@ -105,11 +96,11 @@ public class ITPreparedQueryTests extends BaseTestClass {
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
InMemoryQueryResult result = (InMemoryQueryResult) qHelper.getResultSet(queryHandle);
- validateInMemoryResultSet(result);
+ Assert.assertEquals(result.getRows().size(), 2);
}
// This is failing
- @Test(enabled = false)
+ @Test(enabled = true)
public void testPrepareAndExecuteTimeoutPreparedQuery() throws Exception {
sHelper.setAndValidateParam(defaultParams);
@@ -141,7 +132,7 @@ public class ITPreparedQueryTests extends BaseTestClass {
logger.info("Get Should now give 404");
response = qHelper.getPreparedQuery(queryPrepareHandle);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
}
@Test
@@ -323,10 +314,10 @@ public class ITPreparedQueryTests extends BaseTestClass {
qHelper.destroyPreparedQuery();
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
}
@@ -355,16 +346,16 @@ public class ITPreparedQueryTests extends BaseTestClass {
qHelper.destroyPreparedQuery(name1);
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
//AssertUtil.assertSucceededResponse(response);
qHelper.destroyPreparedQuery(name2);
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
}
@@ -393,16 +384,16 @@ public class ITPreparedQueryTests extends BaseTestClass {
qHelper.destroyPreparedQuery(null, lens.getUserName());
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
// Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
qHelper.destroyPreparedQuery(null, user);
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
}
//jira raised LENS-567
@@ -441,16 +432,16 @@ public class ITPreparedQueryTests extends BaseTestClass {
qHelper.destroyPreparedQuery(null, null, sessionHandleString, startTime, endTime);
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
AssertUtil.assertSucceededResponse(response);
qHelper.destroyPreparedQuery(null, null, sessionHandleString, startTime1, endTime1);
response = qHelper.getPreparedQuery(queryPrepareHandle1);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
response = qHelper.getPreparedQuery(queryPrepareHandle2);
- AssertUtil.assertFailedResponse(response);
+ AssertUtil.assertNotFound(response);
}
http://git-wip-us.apache.org/repos/asf/lens/blob/5a18cce8/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
index 2d0c3f1..7b8b377 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
@@ -25,21 +25,20 @@ import java.util.HashMap;
import java.util.List;
import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.lens.api.LensConf;
import org.apache.lens.api.query.*;
+import org.apache.lens.api.result.LensAPIResult;
import org.apache.lens.cube.parse.CubeQueryConfUtil;
import org.apache.lens.regression.core.constants.DriverConfig;
import org.apache.lens.regression.core.constants.QueryInventory;
import org.apache.lens.regression.core.constants.QueryURL;
-import org.apache.lens.regression.core.helpers.LensServerHelper;
-import org.apache.lens.regression.core.helpers.MetastoreHelper;
-import org.apache.lens.regression.core.helpers.QueryHelper;
import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
-import org.apache.lens.regression.core.helpers.SessionHelper;
import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.regression.core.type.FormBuilder;
import org.apache.lens.regression.core.type.MapBuilder;
import org.apache.lens.regression.util.AssertUtil;
import org.apache.lens.regression.util.Util;
@@ -57,15 +56,9 @@ public class ITQueryApiTests extends BaseTestClass {
WebTarget servLens;
private String sessionHandleString;
- LensServerHelper lens = getLensServerHelper();
- MetastoreHelper mHelper = getMetastoreHelper();
- SessionHelper sHelper = getSessionHelper();
- QueryHelper qHelper = getQueryHelper();
-
private String hiveDriverSitePath = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
private static Logger logger = Logger.getLogger(ITQueryApiTests.class);
-
@BeforeClass(alwaysRun = true)
public void initialize() throws Exception {
servLens = ServiceManagerHelper.init();
@@ -126,6 +119,7 @@ public class ITQueryApiTests extends BaseTestClass {
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
}
+
@Test
public void testExecuteWrongQuery() throws Exception {
QueryHandle qH = (QueryHandle) qHelper.executeQuery(QueryInventory.WRONG_QUERY, "queryName").getData();
@@ -172,15 +166,15 @@ public class ITQueryApiTests extends BaseTestClass {
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
QueryHandleWithResultSet qHWithResultSet = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(
- QueryInventory.QUERY, "60000").getData();
+ QueryInventory.JDBC_DIM_QUERY, "60000").getData();
QueryStatus queryStatus = qHelper.getQueryStatus(qHWithResultSet.getQueryHandle());
Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
InMemoryQueryResult result = (InMemoryQueryResult) qHWithResultSet.getResult();
Assert.assertNotNull(result);
- validateInMemoryResultSet(result);
+ Assert.assertEquals(result.getRows().size(), 2);
- qHWithResultSet = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(QueryInventory.SLEEP_QUERY, "10000")
- .getData();
+ qHWithResultSet = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(QueryInventory.getSleepQuery("10"),
+ "10000").getData();
queryStatus = qHelper.getQueryStatus(qHWithResultSet.getQueryHandle());
Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
@@ -196,13 +190,29 @@ public class ITQueryApiTests extends BaseTestClass {
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
sHelper.setAndValidateParam(LensConfConstants.QUERY_MAIL_NOTIFY, "false");
- QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
InMemoryQueryResult result = (InMemoryQueryResult) qHelper.getResultSet(queryHandle);
Assert.assertNotNull(result);
validateInMemoryResultSet(result);
+ }
+ //LENS-909
+ @Test
+ public void testInMemoryResultMailNotify() throws Exception {
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "false");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_MAIL_NOTIFY, "true");
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+ InMemoryQueryResult result = (InMemoryQueryResult) qHelper.getResultSet(queryHandle);
+ Assert.assertNotNull(result);
+ validateInMemoryResultSet(result);
+ //TODO : add assert on actual mail sent
}
@Test
@@ -211,7 +221,7 @@ public class ITQueryApiTests extends BaseTestClass {
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
- QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
PersistentQueryResult result = (PersistentQueryResult) qHelper.getResultSet(queryHandle);
@@ -398,7 +408,7 @@ public class ITQueryApiTests extends BaseTestClass {
return testData;
}
- @Test(dataProvider = "query_names", enabled = false)
+ @Test(dataProvider = "query_names", enabled = true)
public void testRunningSameNameSessionQuery(String queryName) throws Exception {
String query = QueryInventory.getSleepQuery("10");
@@ -422,7 +432,7 @@ public class ITQueryApiTests extends BaseTestClass {
Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
}
- @Test(enabled = false)
+ @Test(enabled = true)
public void testQueuedSameNameSessionQuery() throws Exception {
String query = QueryInventory.getSleepQuery("10");
@@ -507,4 +517,43 @@ public class ITQueryApiTests extends BaseTestClass {
Assert.assertFalse(qhr1.getHandleIdString().equals(qhr2.getHandleIdString()));
}
+ // LENS-1186
+ @Test
+ public void testInvalidOperation() throws Exception {
+ FormBuilder formData = new FormBuilder();
+ formData.add("sessionid", sessionHandleString);
+ formData.add("query", QueryInventory.JDBC_CUBE_QUERY);
+ formData.add("operation", "INVALID_EXECUTE");
+ String conf = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><conf />";
+ formData.add("conf", conf);
+
+ Response response = lens.exec("post", QueryURL.QUERY_URL, servLens, null, null, MediaType.MULTIPART_FORM_DATA_TYPE,
+ MediaType.APPLICATION_XML, formData.getForm());
+ AssertUtil.assertBadRequest(response);
+ LensAPIResult result = response.readEntity(new GenericType<LensAPIResult>(){});
+ Assert.assertEquals(result.getErrorCode(), 2003);
+ }
+
+ @Test
+ public void testInvalidSessionHandle() throws Exception {
+
+ String session = sHelper.openSession("u1", "p1", lens.getCurrentDB());
+ QueryHandle q = (QueryHandle) qHelper.executeQuery(QueryInventory.getSleepQuery("10"), null, session).getData();
+ qHelper.waitForQueryToRun(q);
+ sHelper.closeSession(session);
+
+ FormBuilder formData = new FormBuilder();
+ formData.add("sessionid", session);
+ formData.add("query", QueryInventory.HIVE_CUBE_QUERY);
+ formData.add("operation", "EXECUTE");
+ String conf = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><conf />";
+ formData.add("conf", conf);
+
+ Response response = lens.exec("post", QueryURL.QUERY_URL, servLens, null, null, MediaType.MULTIPART_FORM_DATA_TYPE,
+ MediaType.APPLICATION_XML, formData.getForm());
+ AssertUtil.assertBadRequest(response);
+ LensAPIResult result = response.readEntity(new GenericType<LensAPIResult>() {
+ });
+ Assert.assertEquals(result.getErrorCode(), 2005);
+ }
}