forked from community/product-iots
parent
284c221056
commit
88e696b4e9
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
|
||||||
|
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||||
|
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
|
||||||
|
import org.wso2.carbon.automation.engine.context.TestUserMode;
|
||||||
|
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||||
|
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
|
||||||
|
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||||
|
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
|
||||||
|
|
||||||
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test Automation server extension to start the DAS.
|
||||||
|
* This will set the carbon_home to {carbonHome}/core and port offset : 2
|
||||||
|
*/
|
||||||
|
public class AnalyticsServerExtension extends ExecutionListenerExtension {
|
||||||
|
|
||||||
|
private CustomTestServerManager serverManager;
|
||||||
|
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
|
||||||
|
private String executionEnvironment;
|
||||||
|
private AutomationContext automationContext;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initiate() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
|
||||||
|
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
|
||||||
|
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "2");
|
||||||
|
}
|
||||||
|
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
|
||||||
|
executionEnvironment =
|
||||||
|
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
|
||||||
|
|
||||||
|
} catch (XPathExpressionException e) {
|
||||||
|
handleException("Error while initiating test environment", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutionStart() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||||
|
String carbonHome = serverManager.startServer("analytics");
|
||||||
|
log.info(carbonHome);
|
||||||
|
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException("Fail to start carbon server ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutionFinish() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||||
|
serverManager.stopServer();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException("Fail to stop carbon server ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void handleException(String msg, Exception e) {
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new RuntimeException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
|
||||||
|
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||||
|
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
|
||||||
|
import org.wso2.carbon.automation.engine.context.TestUserMode;
|
||||||
|
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||||
|
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
|
||||||
|
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||||
|
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
|
||||||
|
|
||||||
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test Automation server extension to start the Broker.
|
||||||
|
* This will set the carbon_home to {carbonHome}/core and port offset : 3
|
||||||
|
*/
|
||||||
|
public class BrokerServerExtension extends ExecutionListenerExtension {
|
||||||
|
|
||||||
|
private CustomTestServerManager serverManager;
|
||||||
|
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
|
||||||
|
private String executionEnvironment;
|
||||||
|
private AutomationContext automationContext;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initiate() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
|
||||||
|
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
|
||||||
|
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "3");
|
||||||
|
}
|
||||||
|
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
|
||||||
|
executionEnvironment =
|
||||||
|
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
|
||||||
|
|
||||||
|
} catch (XPathExpressionException e) {
|
||||||
|
handleException("Error while initiating test environment", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutionStart() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||||
|
String carbonHome = serverManager.startServer("broker");
|
||||||
|
log.info(carbonHome);
|
||||||
|
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException("Fail to start carbon server ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutionFinish() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||||
|
serverManager.stopServer();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException("Fail to stop carbon server ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void handleException(String msg, Exception e) {
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new RuntimeException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,147 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2005-2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.automation.engine.FrameworkConstants;
|
||||||
|
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||||
|
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||||
|
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||||
|
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerManager;
|
||||||
|
|
||||||
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CustomTestServerManager {
|
||||||
|
protected CarbonServerManager carbonServer;
|
||||||
|
protected String carbonZip;
|
||||||
|
protected int portOffset;
|
||||||
|
protected Map<String, String> commandMap = new HashMap<String, String>();
|
||||||
|
private static final Log log = LogFactory.getLog(CustomTestServerManager.class);
|
||||||
|
protected String carbonHome;
|
||||||
|
|
||||||
|
public CustomTestServerManager(AutomationContext context) {
|
||||||
|
carbonServer = new CarbonServerManager(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomTestServerManager(AutomationContext context, String carbonZip) {
|
||||||
|
carbonServer = new CarbonServerManager(context);
|
||||||
|
this.carbonZip = carbonZip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomTestServerManager(AutomationContext context, int portOffset) {
|
||||||
|
carbonServer = new CarbonServerManager(context);
|
||||||
|
this.portOffset = portOffset;
|
||||||
|
commandMap.put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, String.valueOf(portOffset));
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomTestServerManager(AutomationContext context, String carbonZip,
|
||||||
|
Map<String, String> commandMap) {
|
||||||
|
carbonServer = new CarbonServerManager(context);
|
||||||
|
this.carbonZip = carbonZip;
|
||||||
|
if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) {
|
||||||
|
this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND));
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("portOffset value must be set in command list");
|
||||||
|
}
|
||||||
|
this.commandMap = commandMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCarbonZip() {
|
||||||
|
return carbonZip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCarbonHome() {
|
||||||
|
return carbonHome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPortOffset() {
|
||||||
|
return portOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void configureServer() throws AutomationFrameworkException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Map<String, String> getCommands() {
|
||||||
|
return commandMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is called for starting a Carbon server in preparation for execution of a
|
||||||
|
* TestSuite
|
||||||
|
* <p/>
|
||||||
|
* Add the @BeforeSuite TestNG annotation in the method overriding this method
|
||||||
|
* @param server : The server which needs to be start.
|
||||||
|
* @return The CARBON_HOME
|
||||||
|
* @throws java.io.IOException If an error occurs while copying the deployment artifacts into the
|
||||||
|
* Carbon server
|
||||||
|
*/
|
||||||
|
public String startServer(String server)
|
||||||
|
throws AutomationFrameworkException, IOException, XPathExpressionException {
|
||||||
|
if(carbonHome == null) {
|
||||||
|
if (carbonZip == null) {
|
||||||
|
carbonZip = System.getProperty(FrameworkConstants.SYSTEM_PROPERTY_CARBON_ZIP_LOCATION);
|
||||||
|
}
|
||||||
|
if (carbonZip == null) {
|
||||||
|
throw new IllegalArgumentException("carbon zip file cannot find in the given location");
|
||||||
|
}
|
||||||
|
carbonHome = carbonServer.setUpCarbonHome(carbonZip) + "/" + server;
|
||||||
|
configureServer();
|
||||||
|
}
|
||||||
|
log.info("Carbon Home - " + carbonHome );
|
||||||
|
if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) {
|
||||||
|
this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND));
|
||||||
|
} else {
|
||||||
|
this.portOffset = 0;
|
||||||
|
}
|
||||||
|
carbonServer.startServerUsingCarbonHome(carbonHome, commandMap);
|
||||||
|
return carbonHome;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restarting server already started by the method startServer
|
||||||
|
* @throws AutomationFrameworkException
|
||||||
|
*/
|
||||||
|
public void restartGracefully() throws AutomationFrameworkException {
|
||||||
|
if(carbonHome == null) {
|
||||||
|
throw new AutomationFrameworkException("No Running Server found to restart. " +
|
||||||
|
"Please make sure whether server is started");
|
||||||
|
}
|
||||||
|
carbonServer.restartGracefully();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is called for stopping a Carbon server
|
||||||
|
* <p/>
|
||||||
|
* Add the @AfterSuite annotation in the method overriding this method
|
||||||
|
*
|
||||||
|
* @throws AutomationFrameworkException If an error occurs while shutting down the server
|
||||||
|
*/
|
||||||
|
public void stopServer() throws AutomationFrameworkException {
|
||||||
|
carbonServer.serverShutdown(portOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. 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.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
|
||||||
|
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||||
|
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
|
||||||
|
import org.wso2.carbon.automation.engine.context.TestUserMode;
|
||||||
|
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||||
|
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
|
||||||
|
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||||
|
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
|
||||||
|
|
||||||
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test Automation server extension to start the IOT core.
|
||||||
|
* This will set the carbon_home to {carbonHome}/core and port offset : 0
|
||||||
|
*/
|
||||||
|
public class IOTServerExtension extends ExecutionListenerExtension {
|
||||||
|
|
||||||
|
private CustomTestServerManager serverManager;
|
||||||
|
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
|
||||||
|
private String executionEnvironment;
|
||||||
|
private AutomationContext automationContext;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initiate() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
|
||||||
|
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
|
||||||
|
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "0");
|
||||||
|
}
|
||||||
|
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
|
||||||
|
executionEnvironment =
|
||||||
|
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
|
||||||
|
|
||||||
|
} catch (XPathExpressionException e) {
|
||||||
|
handleException("Error while initiating test environment", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutionStart() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||||
|
String carbonHome = serverManager.startServer("core");
|
||||||
|
log.info(carbonHome);
|
||||||
|
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException("Fail to start carbon server ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExecutionFinish() throws AutomationFrameworkException {
|
||||||
|
try {
|
||||||
|
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||||
|
serverManager.stopServer();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
handleException("Fail to stop carbon server ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void handleException(String msg, Exception e) {
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new RuntimeException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue