/* *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.samples.test.mediation; import org.apache.axiom.om.OMElement; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import org.wso2.carbon.integration.common.admin.client.LogViewerClient; import org.wso2.carbon.logging.view.stub.types.carbon.LogEvent; import org.wso2.esb.integration.common.utils.ESBIntegrationTest; import org.wso2.esb.integration.common.utils.ESBTestConstant; /** * Sample 2: CBR with the Switch-Case Mediator Using Message Properties */ public class Sample2TestCase extends ESBIntegrationTest { @BeforeClass(alwaysRun = true) public void uploadSynapseConfig() throws Exception { super.init(); loadSampleESBConfiguration(2); } @Test(groups = { "wso2.esb" }, description = "Sample 2: CBR with the Switch-case mediator, using message properties") public void testSample2() throws Exception { LogViewerClient logViewerClient = new LogViewerClient(contextUrls.getBackEndUrl(), getSessionCookie()); logViewerClient.clearLogs(); OMElement response = axis2Client.sendSimpleStockQuoteRequest( getMainSequenceURL(), getBackEndServiceUrl(ESBTestConstant.SIMPLE_STOCK_QUOTE_SERVICE), "IBM"); Assert.assertTrue(response.toString().contains("IBM"), "Requested Symbol not found in Response"); response = axis2Client.sendSimpleStockQuoteRequest( getMainSequenceURL(), getBackEndServiceUrl(ESBTestConstant.SIMPLE_STOCK_QUOTE_SERVICE), "MSFT"); Assert.assertTrue(response.toString().contains("MSFT"), "Requested Symbol not found in Response"); response = axis2Client.sendSimpleStockQuoteRequest( getMainSequenceURL(), getBackEndServiceUrl(ESBTestConstant.SIMPLE_STOCK_QUOTE_SERVICE), "WSO2"); Assert.assertTrue(response.toString().contains("WSO2"), "Requested Symbol not found in Response"); String logMessage1 = "symbol = Great stock - IBM"; String logMessage2 = "symbol = Are you sure? - MSFT"; String logMessage3 = "symbol = Normal Stock - WSO2"; boolean logMessage1Found = false, logMessage2Found = false, logMessage3Found = false; LogEvent[] logEvents = logViewerClient.getAllSystemLogs(); for (LogEvent event : logEvents) { if (!logMessage1Found && event.getMessage().contains(logMessage1)) { logMessage1Found = true; } if (!logMessage2Found && event.getMessage().contains(logMessage2)) { logMessage2Found = true; } if (!logMessage3Found && event.getMessage().contains(logMessage3)) { logMessage3Found = true; } if (logMessage1Found && logMessage2Found && logMessage3Found) { break; } } Assert.assertTrue(logMessage1Found, "Log message not found - " + logMessage1); Assert.assertTrue(logMessage2Found, "Log message not found - " + logMessage2); Assert.assertTrue(logMessage3Found, "Log message not found - " + logMessage3); } @AfterClass(alwaysRun = true) public void destroy() throws Exception { super.cleanup(); } }