Package com.alibaba.druid.bvt.proxy

Source Code of com.alibaba.druid.bvt.proxy.Log4jFilterTest$FakeLogger

/*
* Copyright 1999-2011 Alibaba Group Holding Ltd.
*
* Licensed 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 com.alibaba.druid.bvt.proxy;

import junit.framework.TestCase;

import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
import org.junit.Assert;

import com.alibaba.druid.filter.logging.Log4jFilter;
import com.alibaba.druid.filter.logging.LogFilter;
import com.alibaba.druid.proxy.DruidDriver;
import com.alibaba.druid.stat.JdbcStatManager;

public class Log4jFilterTest extends TestCase {
    protected void tearDown() throws Exception {
        DruidDriver.getProxyDataSources().clear();
        Assert.assertEquals(0, JdbcStatManager.getInstance().getSqlList().size());
    }
   
    public void test_logger() throws Exception {
        Log4jFilter filter = new Log4jFilter();

        filter.setDataSourceLoggerName("_datasource_name_");
        filter.setConnectionLoggerName("_connection_name_");
        filter.setStatementLoggerName("_statement_name_");
        filter.setResultSetLoggerName("_resultset_name_");

        Assert.assertEquals(filter.getDataSourceLoggerName(), "_datasource_name_");
        Assert.assertEquals(filter.getConnectionLoggerName(), "_connection_name_");
        Assert.assertEquals(filter.getStatementLoggerName(), "_statement_name_");
        Assert.assertEquals(filter.getResultSetLoggerName(), "_resultset_name_");

        filter.setDataSourceLogger(new FakeLogger("_datasoure_", true));
        filter.setConnectionLogger(new FakeLogger("_connection_", true));
        filter.setStatementLogger(new FakeLogger("_statement_", true));
        filter.setResultSetLogger(new FakeLogger("_resultset_", true));

        Assert.assertEquals(filter.getDataSourceLoggerName(), "_datasoure_");
        Assert.assertEquals(filter.getConnectionLoggerName(), "_connection_");
        Assert.assertEquals(filter.getStatementLoggerName(), "_statement_");
        Assert.assertEquals(filter.getResultSetLoggerName(), "_resultset_");

        setLogDisableAll(filter, true);

        Assert.assertTrue(filter.isDataSourceLogEnabled());

        Assert.assertTrue(filter.isConnectionLogErrorEnabled());
        Assert.assertTrue(filter.isConnectionConnectBeforeLogEnabled());
        Assert.assertTrue(filter.isConnectionConnectAfterLogEnabled());
        Assert.assertTrue(filter.isConnectionCloseAfterLogEnabled());
        Assert.assertTrue(filter.isConnectionCommitAfterLogEnabled());
        Assert.assertTrue(filter.isConnectionRollbackAfterLogEnabled());

        Assert.assertTrue(filter.isStatementLogEnabled());
        Assert.assertTrue(filter.isStatementLogErrorEnabled());
        Assert.assertTrue(filter.isStatementCreateAfterLogEnabled());
        Assert.assertTrue(filter.isStatementCloseAfterLogEnabled());
        Assert.assertTrue(filter.isStatementExecuteAfterLogEnabled());
        Assert.assertTrue(filter.isStatementExecuteBatchAfterLogEnabled());
        Assert.assertTrue(filter.isStatementExecuteQueryAfterLogEnabled());
        Assert.assertTrue(filter.isStatementExecuteUpdateAfterLogEnabled());
        Assert.assertTrue(filter.isStatementLogErrorEnabled());
        Assert.assertTrue(filter.isStatementParameterSetLogEnabled());
        Assert.assertTrue(filter.isStatementPrepareAfterLogEnabled());
        Assert.assertTrue(filter.isStatementPrepareCallAfterLogEnabled());

        Assert.assertTrue(filter.isResultSetLogEnabled());
        Assert.assertTrue(filter.isResultSetLogErrorEnabled());
        Assert.assertTrue(filter.isResultSetCloseAfterLogEnabled());
        Assert.assertTrue(filter.isResultSetNextAfterLogEnabled());
        Assert.assertTrue(filter.isResultSetOpenAfterLogEnabled());

        // ////

        filter.setDataSourceLogger(new FakeLogger("_datasoure_", false));
        filter.setConnectionLogger(new FakeLogger("_connection_", false));
        filter.setStatementLogger(new FakeLogger("_statement_", false));
        filter.setResultSetLogger(new FakeLogger("_resultset_", false));

        Assert.assertFalse(filter.isDataSourceLogEnabled());

        Assert.assertFalse(filter.isConnectionLogErrorEnabled());
        Assert.assertFalse(filter.isConnectionConnectBeforeLogEnabled());
        Assert.assertFalse(filter.isConnectionConnectAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionCloseAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionCommitAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionRollbackAfterLogEnabled());

        Assert.assertFalse(filter.isStatementLogEnabled());
        Assert.assertFalse(filter.isStatementLogErrorEnabled());
        Assert.assertFalse(filter.isStatementCreateAfterLogEnabled());
        Assert.assertFalse(filter.isStatementCloseAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteBatchAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteQueryAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteUpdateAfterLogEnabled());
        Assert.assertFalse(filter.isStatementLogErrorEnabled());
        Assert.assertFalse(filter.isStatementParameterSetLogEnabled());
        Assert.assertFalse(filter.isStatementPrepareAfterLogEnabled());
        Assert.assertFalse(filter.isStatementPrepareCallAfterLogEnabled());

        Assert.assertFalse(filter.isResultSetLogEnabled());
        Assert.assertFalse(filter.isResultSetLogErrorEnabled());
        Assert.assertFalse(filter.isResultSetCloseAfterLogEnabled());
        Assert.assertFalse(filter.isResultSetNextAfterLogEnabled());
        Assert.assertFalse(filter.isResultSetOpenAfterLogEnabled());

        // //////////////////////////////////////

        setLogDisableAll(filter, false);

        // ////

        filter.setDataSourceLogger(new FakeLogger("_datasoure_", false));
        filter.setConnectionLogger(new FakeLogger("_connection_", false));
        filter.setStatementLogger(new FakeLogger("_statement_", false));
        filter.setResultSetLogger(new FakeLogger("_resultset_", false));

        Assert.assertFalse(filter.isDataSourceLogEnabled());

        Assert.assertFalse(filter.isConnectionLogErrorEnabled());
        Assert.assertFalse(filter.isConnectionConnectBeforeLogEnabled());
        Assert.assertFalse(filter.isConnectionConnectAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionCloseAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionCommitAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionRollbackAfterLogEnabled());

        Assert.assertFalse(filter.isStatementLogEnabled());
        Assert.assertFalse(filter.isStatementLogErrorEnabled());
        Assert.assertFalse(filter.isStatementCreateAfterLogEnabled());
        Assert.assertFalse(filter.isStatementCloseAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteBatchAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteQueryAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteUpdateAfterLogEnabled());
        Assert.assertFalse(filter.isStatementLogErrorEnabled());
        Assert.assertFalse(filter.isStatementParameterSetLogEnabled());
        Assert.assertFalse(filter.isStatementPrepareAfterLogEnabled());
        Assert.assertFalse(filter.isStatementPrepareCallAfterLogEnabled());

        Assert.assertFalse(filter.isResultSetLogEnabled());
        Assert.assertFalse(filter.isResultSetLogErrorEnabled());
        Assert.assertFalse(filter.isResultSetCloseAfterLogEnabled());
        Assert.assertFalse(filter.isResultSetNextAfterLogEnabled());
        Assert.assertFalse(filter.isResultSetOpenAfterLogEnabled());

        // //

        // ////

        filter.setDataSourceLogger(new FakeLogger("_datasoure_", true));
        filter.setConnectionLogger(new FakeLogger("_connection_", true));
        filter.setStatementLogger(new FakeLogger("_statement_", true));
        filter.setResultSetLogger(new FakeLogger("_resultset_", true));

        Assert.assertFalse(filter.isDataSourceLogEnabled());

        Assert.assertFalse(filter.isConnectionLogErrorEnabled());
        Assert.assertFalse(filter.isConnectionConnectBeforeLogEnabled());
        Assert.assertFalse(filter.isConnectionConnectAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionCloseAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionCommitAfterLogEnabled());
        Assert.assertFalse(filter.isConnectionRollbackAfterLogEnabled());

        Assert.assertFalse(filter.isStatementLogEnabled());
        Assert.assertFalse(filter.isStatementLogErrorEnabled());
        Assert.assertFalse(filter.isStatementCreateAfterLogEnabled());
        Assert.assertFalse(filter.isStatementCloseAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteBatchAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteQueryAfterLogEnabled());
        Assert.assertFalse(filter.isStatementExecuteUpdateAfterLogEnabled());
        Assert.assertFalse(filter.isStatementLogErrorEnabled());
        Assert.assertFalse(filter.isStatementParameterSetLogEnabled());
        Assert.assertFalse(filter.isStatementPrepareAfterLogEnabled());
        Assert.assertFalse(filter.isStatementPrepareCallAfterLogEnabled());

        Assert.assertFalse(filter.isResultSetLogEnabled());
        Assert.assertFalse(filter.isResultSetLogErrorEnabled());
        Assert.assertFalse(filter.isResultSetCloseAfterLogEnabled());
        Assert.assertFalse(filter.isResultSetNextAfterLogEnabled());
        Assert.assertFalse(filter.isResultSetOpenAfterLogEnabled());
    }

    private void setLogDisableAll(LogFilter logFilter, boolean enable) {
        logFilter.setDataSourceLogEnabled(enable);

        logFilter.setConnectionLogEnabled(enable);
        logFilter.setConnectionLogErrorEnabled(enable);
        logFilter.setConnectionRollbackAfterLogEnabled(enable);
        logFilter.setConnectionConnectBeforeLogEnabled(enable);
        logFilter.setConnectionConnectAfterLogEnabled(enable);
        logFilter.setConnectionCommitAfterLogEnabled(enable);
        logFilter.setConnectionCloseAfterLogEnabled(enable);

        logFilter.setStatementLogEnabled(enable);
        logFilter.setStatementLogErrorEnabled(enable);
        logFilter.setStatementCreateAfterLogEnabled(enable);
        logFilter.setStatementExecuteAfterLogEnabled(enable);
        logFilter.setStatementExecuteBatchAfterLogEnabled(enable);
        logFilter.setStatementExecuteQueryAfterLogEnabled(enable);
        logFilter.setStatementExecuteUpdateAfterLogEnabled(enable);
        logFilter.setStatementPrepareCallAfterLogEnabled(enable);
        logFilter.setStatementPrepareAfterLogEnabled(enable);
        logFilter.setStatementCloseAfterLogEnabled(enable);

        logFilter.setResultSetLogEnabled(enable);
        logFilter.setResultSetOpenAfterLogEnabled(enable);
        logFilter.setResultSetNextAfterLogEnabled(enable);
        logFilter.setResultSetLogErrorEnabled(enable);
        logFilter.setResultSetCloseAfterLogEnabled(enable);
    }

    public static class FakeLogger extends Logger {

        private boolean enable;

        public FakeLogger(String name, boolean enable){
            super(name);
            this.enable = enable;
        }

        public boolean isDebugEnabled() {
            return this.enable;
        }

        public boolean isEnabledFor(Priority level) {
            return this.enable;
        }
    }
}
TOP

Related Classes of com.alibaba.druid.bvt.proxy.Log4jFilterTest$FakeLogger

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.