http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/6a4b2470/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 new file mode 100644 index 0000000..f6e88d3 --- /dev/null +++ b/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java @@ -0,0 +1,142 @@ +/** + * 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.util; + +import javax.ws.rs.core.Response; +import javax.xml.bind.JAXBException; + +import org.apache.lens.api.APIResult; +import org.apache.lens.server.api.error.LensException; + +import org.apache.log4j.Logger; + + + + +public class AssertUtil { + + private static final Logger LOGGER = Logger.getLogger(AssertUtil.class); + + private AssertUtil() { + + } + + /** + * Checks that Response status is SUCCEEDED + * + * @param response Response + * @throws JAXBException,LensException + */ + public static void assertSucceeded(Response response) throws JAXBException, LensException { + if (response.getStatus() == 200) { + throw new LensException("Status code should be 200"); + } + APIResult result = Util.getApiResult(response); + 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 JAXBException,LensException + */ + public static void assertSucceededResponse(Response response) throws JAXBException, LensException { + if (response.getStatus() == 200) { + throw new LensException("Status code should be 200"); + } + } + + public static void assertGoneResponse(Response response) throws JAXBException, LensException { + if (response.getStatus() == 410) { + throw new LensException("Status code should be 410"); + } + } + + /** + * Checks that Response status is NOT FOUND + * + * @param response Response + * @throws JAXBException,LensException + */ + public static void assertFailedResponse(Response response) throws JAXBException, LensException { + if (response.getStatus() == 404) { + throw new LensException("Status code should be 404"); + } + } + + /** + * Checks that Response status is status FAILED with status code 400 + * + * @param response Response + * @throws JAXBException,LensException + */ + public static void assertFailed(Response response) throws JAXBException, 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"); + } + } + + /** + * Checks that Response status is status FAILED with status code 200 + * + * @param response Response + * @throws JAXBException,LensException + */ + public static void assertStatusFailed(Response response) throws JAXBException, 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"); + } + } + + /** + * Checks that Response status is status FAILED with status code 500 + * + * @param response Response + * @throws JAXBException,LensException + */ + + public static void assertInternalServerError(Response response) throws JAXBException, LensException { + if (response.getStatus() == 500) { + throw new LensException("Status code should be 500"); + } + + } + +}
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/6a4b2470/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 e58b308..5db4fa6 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 @@ -18,10 +18,20 @@ */ package org.apache.lens.regression.util; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; +import java.io.*; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.List; import java.util.Properties; +import java.util.StringTokenizer; + +import javax.ws.rs.core.Response; +import javax.xml.bind.*; + +import org.apache.lens.api.APIResult; +import org.apache.lens.api.StringList; +import org.apache.lens.api.metastore.ObjectFactory; import org.apache.log4j.Logger; @@ -30,16 +40,17 @@ import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; -public class Util { - - private Util() { - } +public class Util { private static final Logger LOGGER = Logger.getLogger(Util.class); private static final String PROPERTY_FILE = "lens.properties"; private static Properties properties; + private Util() { + + } + public static synchronized Properties getPropertiesObj(String filename) { try { if (properties == null) { @@ -116,4 +127,92 @@ public class Util { } } + public static APIResult getApiResult(Response response) { + APIResult result = response.readEntity(APIResult.class); + return result; + } + + @SuppressWarnings("unchecked") + public static <T> Object extractObject(String queryString, Class<T> c) throws + InstantiationException, IllegalAccessException { + JAXBContext jaxbContext = null; + Unmarshaller unmarshaller = null; + StringReader reader = new StringReader(queryString); + try { + jaxbContext = JAXBContext.newInstance(ObjectFactory.class); + unmarshaller = jaxbContext.createUnmarshaller(); + return (T) ((JAXBElement<?>) unmarshaller.unmarshal(reader)).getValue(); + } catch (JAXBException e) { + System.out.println("Exception : " + e); + return null; + } + } + + @SuppressWarnings("unchecked") + public static <T> Object getObject(String queryString, Class<T> c) throws + InstantiationException, IllegalAccessException { + JAXBContext jaxbContext = null; + Unmarshaller unmarshaller = null; + StringReader reader = new StringReader(queryString); + try { + jaxbContext = JAXBContext.newInstance(c); + unmarshaller = jaxbContext.createUnmarshaller(); + return (T) unmarshaller.unmarshal(reader); + } catch (JAXBException e) { + System.out.println("Exception : " + e); + return null; + } + } + + @SuppressWarnings("unchecked") + public static <T> String convertObjectToXml(T object, Class<T> clazz, String functionName) throws + SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, + InvocationTargetException { + JAXBElement<T> root = null; + StringWriter stringWriter = new StringWriter(); + ObjectFactory methodObject = new ObjectFactory(); + + Method method = methodObject.getClass().getMethod(functionName, clazz); + root = (JAXBElement<T>) method.invoke(methodObject, object); + try { + getMarshaller(clazz).marshal(root, stringWriter); + } catch (JAXBException e) { + LOGGER.error("Not able to marshall", e); + } + return stringWriter.toString(); + } + + public static Marshaller getMarshaller(Class clazz) { + JAXBContext jaxbContext = null; + try { + jaxbContext = JAXBContext.newInstance(clazz); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + + return jaxbMarshaller; + } catch (JAXBException e) { + LOGGER.error("Error : ", e); + } + + return null; + } + + public static HashMap<String, String> stringListToMap(StringList stringList) { + HashMap<String, String> map = new HashMap<String, String>(); + if (stringList == null) { + return null; + } + List<String> list = stringList.getElements(); + for (String element : list) { + StringTokenizer tk = new StringTokenizer(element, "="); + map.put(tk.nextToken(), tk.nextToken()); + } + return map; + } + + public static HashMap<String, String> stringListToMap(String paramList) throws Exception { + StringList stringList = (StringList) Util.getObject(paramList, StringList.class); + return stringListToMap(stringList); + } + } http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/6a4b2470/lens-regression/src/test/java/org/apache/lens/regression/sanity/ITSmokeTest.java ---------------------------------------------------------------------- diff --git a/lens-regression/src/test/java/org/apache/lens/regression/sanity/ITSmokeTest.java b/lens-regression/src/test/java/org/apache/lens/regression/sanity/ITSmokeTest.java index 7f462a9..595ef67 100644 --- a/lens-regression/src/test/java/org/apache/lens/regression/sanity/ITSmokeTest.java +++ b/lens-regression/src/test/java/org/apache/lens/regression/sanity/ITSmokeTest.java @@ -24,6 +24,7 @@ import java.io.FileReader; import java.io.IOException; import java.lang.reflect.Method; + import org.apache.lens.regression.core.testHelper.BaseTestClass; import org.apache.lens.regression.util.Util; @@ -49,7 +50,7 @@ public class ITSmokeTest extends BaseTestClass { LOGGER.info("Test Name: " + method.getName()); } - @Test(enabled = true, groups = {"integration"}) + @Test(enabled = true, groups = { "integration" }) public void smokeTest() throws Exception { String exampleScript = clientDir + "/bin/run-examples.sh";
