Package org.apache.synapse.mediators.db

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

/*
*  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.DBReportMediatorFactory;
import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
import org.apache.synapse.mediators.AbstractMediatorTestCase;
import org.apache.synapse.mediators.TestUtils;

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

public class DBReportMediatorTest extends AbstractMediatorTestCase {

    private static DBReportMediator report;

    public void testLookupMediator1() throws Exception {
        MessageContext synCtx = TestUtils.getTestContext(
            "<dummy><from>me</from><count>5</count><to>you</to><category>GOLD</category></dummy>");
        assertTrue(report.mediate(synCtx));
        Connection con = report.getDataSource().getConnection();
        ResultSet rs = con.createStatement().executeQuery(
            "select fromepr, cnt, toepr, category from audit");
        if (rs.next()) {
            assertEquals("me", rs.getString("fromepr"));
            assertEquals(5, rs.getInt("cnt"));
            assertEquals("you", rs.getString("toepr"));
            assertEquals("GOLD", rs.getString("category"));
        } else {
            fail("DB report failed");
        }
    }

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

            @Override
            protected void setUp() throws Exception {

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

                report = (DBReportMediator)
                    new DBReportMediatorFactory().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>insert into audit values(?, ?, ?, ?)</sql>\n" +
                            "    <parameter expression=\"//from\" type=\"VARCHAR\"/>\n" +
                            "    <parameter expression=\"//count\" type=\"INTEGER\"/>\n" +
                            "    <parameter expression=\"//to\" type=\"VARCHAR\"/>\n" +
                            "    <parameter value=\"GOLD\" type=\"VARCHAR\"/>\n" +
                            "  </statement>\n" +
                            "</dblookup>"
                    ), new Properties());
               
                report.init(new Axis2SynapseEnvironment(new SynapseConfiguration()));

                java.sql.Statement s = report.getDataSource().getConnection().createStatement();
                try {
                    s.execute("drop table audit");
                } catch (SQLException ignore) {}
                s.execute("create table audit(fromepr varchar(10), cnt int, toepr varchar(10), category varchar(10))");
                s.close();
            }

            @Override
            protected void tearDown() throws Exception {

            }
        };
    }
}
TOP

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

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.