Package org.apache.synapse.mediators.db

Source Code of org.apache.synapse.mediators.db.DBLookupMediatorTest

/*
*  Licensed to the Apache Software Foundation (ASF) under one
*  or more contributor license agreements.  See the NOTICE file
*  distributed with this work for additional information
*  regarding copyright ownership.  The ASF 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.apache.synapse.mediators.db;

import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.synapse.MessageContext;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.xml.DBLookupMediatorFactory;
import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
import org.apache.synapse.mediators.AbstractMediatorTestCase;
import org.apache.synapse.mediators.TestUtils;

import java.sql.SQLException;
import java.util.Properties;

public class DBLookupMediatorTest extends AbstractMediatorTestCase {

    private static DBLookupMediator lookup;

    public void testLookupMediator1() throws Exception {
        MessageContext synCtx = TestUtils.getTestContext("<dummy><source>5</source></dummy>");
        assertTrue(lookup.mediate(synCtx));
        assertEquals(synCtx.getProperty("targetProp"), "svr1");
        assertEquals(synCtx.getProperty("categoryProp"), "A");
    }

    public void testLookupMediator2() throws Exception {
        MessageContext synCtx = TestUtils.getTestContext("<dummy><source>6</source></dummy>");
        assertTrue(lookup.mediate(synCtx));
        assertEquals(synCtx.getProperty("targetProp"), "svr3");
        assertEquals(synCtx.getProperty("categoryProp"), "B");
    }

    public static Test suite() {
        return new TestSetup(new TestSuite(DBLookupMediatorTest.class)) {

            @Override
            protected void setUp() throws Exception {

                String baseDir = System.getProperty("basedir");
                if (baseDir == null) {
                    baseDir = ".";
                }

                lookup = (DBLookupMediator)
                    new DBLookupMediatorFactory().createMediator(createOMElement(
                        "<dblookup xmlns=\"http://ws.apache.org/ns/synapse\">\n" +
                            "  <connection>\n" +
                            "    <pool>\n" +
                            "      <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>\n" +
                            "      <url>jdbc:derby:" + baseDir + "/target/derbyDB;create=true</url>\n" +
                            "      <user>user</user>\n" +
                            "      <password>pass</password>\n" +
                            "      <property name=\"initialsize\" value=\"2\"/>\n" +
                            "      <property name=\"isolation\" value=\"Connection.TRANSACTION_SERIALIZABLE\"/>\n" +
                            "    </pool>\n" +
                            "  </connection>\n" +
                            "  <statement>\n" +
                            "    <sql>select target, category from destinations where source = ? and type = ?</sql>\n" +
                            "    <parameter expression=\"//source\" type=\"INTEGER\"/>\n" +
                            "    <parameter value=\"GOLD\" type=\"VARCHAR\"/>\n" +
                            "    <result name=\"targetProp\" column=\"target\"/>\n" +
                            "    <result name=\"categoryProp\" column=\"2\"/>\n" +
                            "  </statement>\n" +
                            "</dblookup>"
                    ), new Properties());

                lookup.init(new Axis2SynapseEnvironment(new SynapseConfiguration()));

                java.sql.Statement s = lookup.getDataSource().getConnection().createStatement();
                try {
                    s.execute("drop table destinations");
                } catch (SQLException ignore) {}
                s.execute("create table destinations(target varchar(10), source int, type varchar(10), category varchar(10))");
                s.execute("insert into destinations values ('svr1', 5, 'GOLD', 'A')");
                s.execute("insert into destinations values ('svr2', 5, 'SILVER', 'A')");
                s.execute("insert into destinations values ('svr3', 6, 'GOLD', 'B')");
                s.close();
            }

            @Override
            protected void tearDown() throws Exception {

            }
        };
    }
}
TOP

Related Classes of org.apache.synapse.mediators.db.DBLookupMediatorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.