package org.wso2.carbon.esb.mediator.test.switchMediator;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.carbon.automation.test.utils.http.client.HttpResponse;
import org.wso2.esb.integration.common.utils.ESBIntegrationTest;
import org.wso2.esb.integration.common.utils.ESBTestConstant;
public class ESBJAVA1857TestCase extends ESBIntegrationTest {
@BeforeClass(alwaysRun = true)
public void beforeClass() throws Exception {
super.init();
loadESBConfigurationFromClasspath("/artifacts/ESB/synapseconfig/filters/switchMediator/ESBJAVA_1857_switch_case_synapse.xml");
}
@Test(groups = { "wso2.esb" }, description = "ESBJAVA1857 SwitchMediator:Negative Case 2: Invalid prefix")
public void testSample2() throws RemoteException {
try {
HttpResponse httpResponse = this.sendGetRequest("http://localhost:8280", null);
Assert.assertTrue(httpResponse.getData().contains("WSO2"));
} catch (AxisFault e) {
Assert.assertEquals(e.getReason(), ESBTestConstant.INCOMING_MESSAGE_IS_NULL,
"Error while invoking Parameter string content Message mismatched");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@AfterClass(alwaysRun = true)
public void afterClass() throws Exception {
super.cleanup();
}
/**
* Sends an HTTP GET request to a url
*
* @param endpoint - The URL of the server. (Example: " http://www.yahoo.com/search")
* @param requestParameters - all the request parameters (Example: "param1=val1¶m2=val2").
* Note: This method will add the question mark (?) to the request - DO NOT add it yourself
* @return - The response from the end point
* @throws java.io.IOException If an error occurs while sending the GET request
*/
public HttpResponse sendGetRequest(String endpoint,
String requestParameters) throws IOException {
if (endpoint.startsWith("http://")) {
String urlStr = endpoint;
if (requestParameters != null && requestParameters.length() > 0) {
urlStr += "?" + requestParameters;
}
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setDoOutput(true);
conn.setReadTimeout(10000);
conn.connect();
// Get the response
StringBuilder sb = new StringBuilder();
BufferedReader rd = null;
try {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
} catch (FileNotFoundException ignored) {
} finally {
if (rd != null) {
rd.close();
}
}
return new HttpResponse(sb.toString(), conn.getResponseCode());
}
return null;
}
public static void main (String [] ar) {
ESBJAVA1857TestCase case1 = new ESBJAVA1857TestCase();
try {
case1.testSample2();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}