/*
* Copyright 1999-2017 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.pool.basic;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.RefAddr;
import javax.naming.Reference;
import junit.framework.TestCase;
import org.junit.Assert;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DruidDataSourceFactoryTest extends TestCase {
@SuppressWarnings("serial")
public void test_factory() throws Exception {
DruidDataSourceFactory factory = new DruidDataSourceFactory();
Assert.assertNull(factory.getObjectInstance(null, null, null, null));
Assert.assertNull(factory.getObjectInstance(new Reference("javax.sql.Date"), null, null, null));
Reference ref = new Reference("javax.sql.DataSource");
ref.add(new RefAddr("user") {
@Override
public Object getContent() {
return null;
}
});
ref.add(new RefAddr("defaultReadOnly") {
@Override
public Object getContent() {
return Boolean.TRUE;
}
});
factory.getObjectInstance(ref, null, null, new Hashtable<Object, Object>());
}
public void test_createDataSource() throws Exception {
Properties properties = new Properties();
properties.setProperty("defaultAutoCommit", "true");
properties.setProperty("defaultReadOnly", "true");
properties.setProperty("defaultTransactionIsolation", "NONE");
properties.setProperty("defaultCatalog", "cn");
properties.setProperty("driverClassName", "com.alibaba.druid.mock.MockDriver");
properties.setProperty("maxActive", "8");
properties.setProperty("maxIdle", "8");
properties.setProperty("minIdle", "3");
properties.setProperty("initialSize", "1");
properties.setProperty("maxWait", "-1");
properties.setProperty("testOnBorrow", "true");
properties.setProperty("testOnReturn", "true");
properties.setProperty("timeBetweenEvictionRunsMillis", "3000");
properties.setProperty("numTestsPerEvictionRun", "1");
properties.setProperty("minEvictableIdleTimeMillis", "10000");
properties.setProperty("testWhileIdle", "true");
properties.setProperty("password", "xxx");
properties.setProperty("url", "jdbc:mock:xxx");
properties.setProperty("username", "user");
properties.setProperty("validationQuery", "select 1");
properties.setProperty("validationQueryTimeout", "30");
properties.setProperty("initConnectionSqls", "select 1");
properties.setProperty("accessToUnderlyingConnectionAllowed", "true");
properties.setProperty("removeAbandoned", "true");
properties.setProperty("removeAbandonedTimeout", "30");
properties.setProperty("logAbandoned", "true");
properties.setProperty("poolPreparedStatements", "true");
properties.setProperty("maxOpenPreparedStatements", "200");
properties.setProperty("connectionProperties", "x=1;y=2;;");
properties.setProperty("filters", "stat;trace");
properties.setProperty("exceptionSorter", "com.alibaba.druid.pool.vendor.NullExceptionSorter");
properties.setProperty("exception-sorter-class-name", "com.alibaba.druid.pool.vendor.NullExceptionSorter");
DruidDataSourceFactory.createDataSource(properties);
}
}