/*
* Copyright (c) 2005-2010, 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.esb.proxyservice.test.passThroughProxy;
import java.io.File;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.automation.api.clients.service.mgt.ServiceAdminClient;
import org.wso2.carbon.automation.core.annotations.ExecutionEnvironment;
import org.wso2.carbon.automation.core.annotations.SetEnvironment;
import org.wso2.carbon.automation.core.utils.serverutils.ServerConfigurationManager;
import org.wso2.esb.integration.common.utils.ESBIntegrationTest;
import org.wso2.carbon.service.mgt.stub.ServiceAdminException;
import org.wso2.carbon.service.mgt.stub.types.carbon.ServiceMetaData;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
public class ProxyServiceWithCustomServiceURITestCase extends ESBIntegrationTest {
*/
/**
* This definition will create a proxy service with 'ServiceURI' parameter
* and exposes it over https
*//*
private final String PROXY_DEFINITION_HTTPS_CUSTOM_URI =
"/artifacts/ESB/proxyconfig/proxy/passThroughProxy/customServiceURI/custom_service_uri_enabling_only_https.xml";
*/
/**
* This configuration contains CustomURIBasedDispatcher in Dispatch phase of
* "InFlow"
*//*
private final String AXIS2_CONFIG_URI_BASED_DISPATCH =
"/proxyconfig/proxy/passThroughProxy/customServiceURI/axis2.xml";
*/
/**
* Custom URI Fragment defined in Proxy definition
*//*
private final String CUSTOM_URI_FRAGMENT = "/CustomURL/Part1/Part2";
private ServerConfigurationManager configurationManager;
@BeforeClass(alwaysRun = true)
public void setEnvironment() throws Exception {
super.init();
configurationManager = new ServerConfigurationManager(esbServer.getBackEndUrl());
File customAxisConfig = new File(getESBResourceLocation() + AXIS2_CONFIG_URI_BASED_DISPATCH);
// restart the esb with new customized axis2 configuration
configurationManager.applyConfiguration(customAxisConfig);
super.init(); // After restarting, this will establish the sessions.
// deploy a proxy service in esb with 'ServiceURI' parameter with value
// '/CustomURL/Part1/Part2' on https transport
loadESBConfigurationFromClasspath(PROXY_DEFINITION_HTTPS_CUSTOM_URI);
}
*/
/**
* This test case will deploy a proxy service with 'ServiceURI' parameter
* over https and see weather it can be invoked using the customized url
*
* @throws org.apache.axis2.AxisFault
*//*
@SetEnvironment(executionEnvironments = {ExecutionEnvironment.integration_all})
@Test(groups = "wso2.esb", description = "- Pass through proxy with a custom service URI over https")
public void testCustomServiceURIPassThroughProxy() throws Exception {
String proxyUrl = getCustmizedProxyServiceSecuredURL(CUSTOM_URI_FRAGMENT);
String symbol = "WSO2";
OMElement response = axis2Client.sendSimpleQuoteRequest(proxyUrl, null, symbol);
assertNotNull(response, "Response not received");
String symbolReturned =
response.getFirstElement()
.getFirstChildWithName(new QName(
"http://services.samples/xsd",
"symbol")).getText();
assertEquals(symbolReturned, symbol, "Unexpected symbol returned");
}
private String getCustmizedProxyServiceSecuredURL(String customURI)
throws RemoteException, ServiceAdminException {
String serviceEndPoint = null;
ServiceAdminClient adminServiceService;
ServiceMetaData serviceMetaData;
String[] endpoints;
adminServiceService = new ServiceAdminClient(context.getContextUrls().getBackEndUrl(), getSessionCookie());
serviceMetaData = adminServiceService.getServicesData("CustomServiceURIProxy");
endpoints = serviceMetaData.getEprs();
assertNotNull(endpoints, "Service Endpoint object null");
assertTrue((endpoints.length > 0), "No service endpoint found");
for (String epr : endpoints) {
if (epr.startsWith("https://")) {
serviceEndPoint = epr;
break;
}
}
assertNotNull(serviceEndPoint, "service endpoint null");
assertTrue(serviceEndPoint.contains(customURI), "Service Endpoint not contain Custom URI Fragment");
return serviceEndPoint;
}
@AfterClass(alwaysRun = true)
public void destroy() throws Exception {
// Restore the axis2 configuration altered by this test case
try {
super.cleanup();
} finally {
Thread.sleep(3000);
configurationManager.restoreToLastConfiguration();
}
}
}
*/