package org.wso2.carbon.esb.mediator.test.clone; 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.esb.integration.common.utils.ESBIntegrationTest; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; /** * This test scenario test if esb continue running without hanging up with an uncaught exception in clone artifact. * https://wso2.org/jira/browse/CARBON-13759 */ public class CloneArtifactErrorTestCase extends ESBIntegrationTest { @BeforeClass(alwaysRun = true) public void setEnvironment() throws Exception { super.init(); loadESBConfigurationFromClasspath("/artifacts/ESB/synapseconfig/patch_automation/CloneArtifactTestCase.xml"); } /** * First send a error request using clone mediator and with the AxisFault response, * sending another correct request to esb and checking if esb working without stopping mediation. */ @Test(groups = {"wso2.esb"}, description = "This test case to varify if esb continue working without hang up with an error request") public void TesPatchAutomation1() throws AxisFault { OMElement response1 = null; try { axis2Client.sendSimpleStockQuoteRequest(getProxyServiceURLHttp("proxyFault1"), null, "WSO2"); fail("Giving response for error sequence of soap message"); } catch (AxisFault axisFault) { //For the first fault request it should return an Axis Fault as response. } //Checking if the esb running after giving an AxisFault error response response1 = axis2Client.sendSimpleStockQuoteRequest(getProxyServiceURLHttp("proxyFault2"),null, "WSO2"); assertTrue(response1.toString().contains("WSO2"), "Fails to return a correct response. ESB stopped mediation"); } @AfterClass(groups = "wso2.esb") public void close() throws Exception { super.cleanup(); } }