Package org.postgresql.test.jdbc2

Source Code of org.postgresql.test.jdbc2.ColumnSanitiserEnabledTest

/*-------------------------------------------------------------------------
*
* Copyright (c) 2004-2014, PostgreSQL Global Development Group
*
*
*-------------------------------------------------------------------------
*/
package org.postgresql.test.jdbc2;

import org.postgresql.core.BaseConnection;
import org.postgresql.test.TestUtil;

import junit.framework.TestCase;

import java.sql.*;
import java.util.Properties;

/*
* This test suite will check the behaviour of the findColumnIndex
* method. The tests will check the behaviour of the method when
* the sanitiser is enabled. Default behaviour of the driver.
*/
public class ColumnSanitiserEnabledTest extends TestCase
{
    private Connection conn;

    public ColumnSanitiserEnabledTest(String name)
    {
        super(name);
    }

    protected void setUp() throws Exception
    {
        Properties props = new Properties();
        props.setProperty("disableColumnSanitiser", Boolean.FALSE.toString());
        conn = TestUtil.openDB(props);
        assertTrue(conn instanceof BaseConnection);
        BaseConnection bc = (BaseConnection)conn;
        assertFalse("Expected state [FALSE] of base connection configuration failed test.", bc.isColumnSanitiserDisabled());
        TestUtil.createTable( conn,"allmixedup",
                "id int primary key, \"DESCRIPTION\" varchar(40), \"fOo\" varchar(3)");
        Statement data = conn.createStatement();
        data.execute(TestUtil.insertSQL("allmixedup",
                "1,'mixed case test', 'bar'"));
        data.close();
    }

    protected void tearDown() throws Exception
    {
        TestUtil.dropTable(conn, "allmixedup");
        TestUtil.closeDB(conn);
    }

    /*
     * Test cases checking different combinations of columns origination from
     * database against application supplied column names.
     */
   
    public void testTableColumnLowerNowFindFindLowerCaseColumn()
            throws SQLException
    {
        findColumn("id", true);
    }

    public void testTableColumnLowerNowFindFindUpperCaseColumn()
            throws SQLException
    {
        findColumn("ID", true);
    }

    public void testTableColumnLowerNowFindFindMixedCaseColumn()
            throws SQLException
    {
        findColumn("Id", true);
    }

    public void testTableColumnUpperNowFindFindLowerCaseColumn()
            throws SQLException
    {
        findColumn("description", true);
    }

    public void testTableColumnUpperNowFindFindUpperCaseColumn()
            throws SQLException
    {
        findColumn("DESCRIPTION", true);
    }

    public void testTableColumnUpperNowFindFindMixedCaseColumn()
            throws SQLException
    {
        findColumn("Description", true);
    }

    public void testTableColumnMixedNowFindLowerCaseColumn()
            throws SQLException
    {
        findColumn("foo", true);
    }

    public void testTableColumnMixedNowFindFindUpperCaseColumn()
            throws SQLException
    {
        findColumn("FOO", true);
    }

    public void testTableColumnMixedNowFindFindMixedCaseColumn()
            throws SQLException
    {
        findColumn("fOo", true);
    }

    private void findColumn(String label, boolean failOnNotFound)
            throws SQLException
    {
        PreparedStatement query = conn
                .prepareStatement("select * from allmixedup");
        if (0 == TestUtil.findColumn(query, label) && failOnNotFound)
        {
            fail(String
                    .format("Expected to find the column with the label [%1$s].",
                            label));
        }
        query.close();
    }
}
TOP

Related Classes of org.postgresql.test.jdbc2.ColumnSanitiserEnabledTest

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.