@ -14,151 +14,148 @@
* See the License for the specific language governing permissions and
* limitations under the License .
* /
package org.apache.dolphinscheduler.dao.datasource ;
import org.apache.dolphinscheduler.common.Constants ;
import org.apache.dolphinscheduler.common.enums.DbType ;
import org.apache.dolphinscheduler.common.utils.PropertyUtils ;
import org.junit.Assert ;
import org.junit.Test ;
public class BaseDataSourceTest {
@Test
public void testDriverClassSelector ( ) {
String mysqlDriverClass = new MySQLDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_MYSQL_JDBC_DRIVER , mysqlDriverClass ) ;
String clickHouseDriverClass = new ClickHouseDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_CLICKHOUSE_JDBC_DRIVER , clickHouseDriverClass ) ;
String db2ServerDriverClass = new DB2ServerDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_DB2_JDBC_DRIVER , db2ServerDriverClass ) ;
String oracleDriverClass = new OracleDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_ORACLE_JDBC_DRIVER , oracleDriverClass ) ;
String postgreDriverClass = new PostgreDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . ORG_POSTGRESQL_DRIVER , postgreDriverClass ) ;
String sqlServerDriverClass = new SQLServerDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_SQLSERVER_JDBC_DRIVER , sqlServerDriverClass ) ;
String hiveDriverClass = new HiveDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . ORG_APACHE_HIVE_JDBC_HIVE_DRIVER , hiveDriverClass ) ;
String sparkDriverClass = new SparkDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . ORG_APACHE_HIVE_JDBC_HIVE_DRIVER , sparkDriverClass ) ;
}
@Test
public void testGetJdbcUrl ( ) {
BaseDataSource hiveDataSource = new HiveDataSource ( ) ;
hiveDataSource . setAddress ( "jdbc:hive2://127.0.0.1:10000" ) ;
hiveDataSource . setDatabase ( "test" ) ;
hiveDataSource . setPassword ( "123456" ) ;
hiveDataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:hive2://127.0.0.1:10000/test" , hiveDataSource . getJdbcUrl ( ) ) ;
//set principal
hiveDataSource . setPrincipal ( "hive/test.com@TEST.COM" ) ;
Assert . assertEquals ( "jdbc:hive2://127.0.0.1:10000/test;principal=hive/test.com@TEST.COM" ,
hiveDataSource . getJdbcUrl ( ) ) ;
//set fake other
hiveDataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals (
"jdbc:hive2://127.0.0.1:10000/test;principal=hive/test.com@TEST.COM;charset=UTF-8" ,
hiveDataSource . getJdbcUrl ( ) ) ;
BaseDataSource clickHouseDataSource = new ClickHouseDataSource ( ) ;
clickHouseDataSource . setAddress ( "jdbc:clickhouse://127.0.0.1:8123" ) ;
clickHouseDataSource . setDatabase ( "test" ) ;
clickHouseDataSource . setPassword ( "123456" ) ;
clickHouseDataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:clickhouse://127.0.0.1:8123/test" , clickHouseDataSource . getJdbcUrl ( ) ) ;
//set fake principal
clickHouseDataSource . setPrincipal ( "fake principal" ) ;
Assert . assertEquals ( "jdbc:clickhouse://127.0.0.1:8123/test" , clickHouseDataSource . getJdbcUrl ( ) ) ;
//set fake other
clickHouseDataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals ( "jdbc:clickhouse://127.0.0.1:8123/test?charset=UTF-8" ,
clickHouseDataSource . getJdbcUrl ( ) ) ;
BaseDataSource sqlServerDataSource = new SQLServerDataSource ( ) ;
sqlServerDataSource . setAddress ( "jdbc:sqlserver://127.0.0.1:1433" ) ;
sqlServerDataSource . setDatabase ( "test" ) ;
sqlServerDataSource . setPassword ( "123456" ) ;
sqlServerDataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:sqlserver://127.0.0.1:1433;databaseName=test" ,
sqlServerDataSource . getJdbcUrl ( ) ) ;
//set fake principal
sqlServerDataSource . setPrincipal ( "fake principal" ) ;
Assert . assertEquals ( "jdbc:sqlserver://127.0.0.1:1433;databaseName=test" ,
sqlServerDataSource . getJdbcUrl ( ) ) ;
//set fake other
sqlServerDataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals ( "jdbc:sqlserver://127.0.0.1:1433;databaseName=test;charset=UTF-8" ,
sqlServerDataSource . getJdbcUrl ( ) ) ;
BaseDataSource db2DataSource = new DB2ServerDataSource ( ) ;
db2DataSource . setAddress ( "jdbc:db2://127.0.0.1:50000" ) ;
db2DataSource . setDatabase ( "test" ) ;
db2DataSource . setPassword ( "123456" ) ;
db2DataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:db2://127.0.0.1:50000/test" , db2DataSource . getJdbcUrl ( ) ) ;
//set fake principal
db2DataSource . setPrincipal ( "fake principal" ) ;
Assert . assertEquals ( "jdbc:db2://127.0.0.1:50000/test" , db2DataSource . getJdbcUrl ( ) ) ;
//set fake other
db2DataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals ( "jdbc:db2://127.0.0.1:50000/test:charset=UTF-8" , db2DataSource . getJdbcUrl ( ) ) ;
}
@Test
public void testGetPassword ( ) {
BaseDataSource dataSource = new BaseDataSource ( ) {
@Override
public String driverClassSelector ( ) {
return null ;
}
@Override
public DbType dbTypeSelector ( ) {
return null ;
}
} ;
String password = "" ;
dataSource . setPassword ( password ) ;
Assert . assertEquals ( "" , dataSource . getPassword ( ) ) ;
password = "IUAjJCVeJipNVEl6TkRVMg==" ;
dataSource . setPassword ( password ) ;
Assert . assertNotNull ( dataSource . getPassword ( ) ) ;
Assert . assertNotNull ( dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
PropertyUtils . setValue ( Constants . DATASOURCE_ENCRYPTION_ENABLE , "true" ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
PropertyUtils . setValue ( Constants . DATASOURCE_ENCRYPTION_ENABLE , "false" ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
}
@Test
public void testDriverClassSelector ( ) {
String mysqlDriverClass = new MySQLDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_MYSQL_JDBC_DRIVER , mysqlDriverClass ) ;
String clickHouseDriverClass = new ClickHouseDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_CLICKHOUSE_JDBC_DRIVER , clickHouseDriverClass ) ;
String db2ServerDriverClass = new DB2ServerDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_DB2_JDBC_DRIVER , db2ServerDriverClass ) ;
String oracleDriverClass = new OracleDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_ORACLE_JDBC_DRIVER , oracleDriverClass ) ;
String postgreDriverClass = new PostgreDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . ORG_POSTGRESQL_DRIVER , postgreDriverClass ) ;
String sqlServerDriverClass = new SQLServerDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . COM_SQLSERVER_JDBC_DRIVER , sqlServerDriverClass ) ;
String hiveDriverClass = new HiveDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . ORG_APACHE_HIVE_JDBC_HIVE_DRIVER , hiveDriverClass ) ;
String sparkDriverClass = new SparkDataSource ( ) . driverClassSelector ( ) ;
Assert . assertEquals ( Constants . ORG_APACHE_HIVE_JDBC_HIVE_DRIVER , sparkDriverClass ) ;
}
@Test
public void testGetJdbcUrl ( ) {
BaseDataSource hiveDataSource = new HiveDataSource ( ) ;
hiveDataSource . setAddress ( "jdbc:hive2://127.0.0.1:10000" ) ;
hiveDataSource . setDatabase ( "test" ) ;
hiveDataSource . setPassword ( "123456" ) ;
hiveDataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:hive2://127.0.0.1:10000/test" , hiveDataSource . getJdbcUrl ( ) ) ;
//set principal
hiveDataSource . setPrincipal ( "hive/test.com@TEST.COM" ) ;
Assert . assertEquals ( "jdbc:hive2://127.0.0.1:10000/test;principal=hive/test.com@TEST.COM" ,
hiveDataSource . getJdbcUrl ( ) ) ;
//set fake other
hiveDataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals (
"jdbc:hive2://127.0.0.1:10000/test;principal=hive/test.com@TEST.COM;charset=UTF-8" ,
hiveDataSource . getJdbcUrl ( ) ) ;
BaseDataSource clickHouseDataSource = new ClickHouseDataSource ( ) ;
clickHouseDataSource . setAddress ( "jdbc:clickhouse://127.0.0.1:8123" ) ;
clickHouseDataSource . setDatabase ( "test" ) ;
clickHouseDataSource . setPassword ( "123456" ) ;
clickHouseDataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:clickhouse://127.0.0.1:8123/test" , clickHouseDataSource . getJdbcUrl ( ) ) ;
//set fake principal
clickHouseDataSource . setPrincipal ( "fake principal" ) ;
Assert . assertEquals ( "jdbc:clickhouse://127.0.0.1:8123/test" , clickHouseDataSource . getJdbcUrl ( ) ) ;
//set fake other
clickHouseDataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals ( "jdbc:clickhouse://127.0.0.1:8123/test?charset=UTF-8" ,
clickHouseDataSource . getJdbcUrl ( ) ) ;
BaseDataSource sqlServerDataSource = new SQLServerDataSource ( ) ;
sqlServerDataSource . setAddress ( "jdbc:sqlserver://127.0.0.1:1433" ) ;
sqlServerDataSource . setDatabase ( "test" ) ;
sqlServerDataSource . setPassword ( "123456" ) ;
sqlServerDataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:sqlserver://127.0.0.1:1433;databaseName=test" ,
sqlServerDataSource . getJdbcUrl ( ) ) ;
//set fake principal
sqlServerDataSource . setPrincipal ( "fake principal" ) ;
Assert . assertEquals ( "jdbc:sqlserver://127.0.0.1:1433;databaseName=test" ,
sqlServerDataSource . getJdbcUrl ( ) ) ;
//set fake other
sqlServerDataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals ( "jdbc:sqlserver://127.0.0.1:1433;databaseName=test;charset=UTF-8" ,
sqlServerDataSource . getJdbcUrl ( ) ) ;
BaseDataSource db2DataSource = new DB2ServerDataSource ( ) ;
db2DataSource . setAddress ( "jdbc:db2://127.0.0.1:50000" ) ;
db2DataSource . setDatabase ( "test" ) ;
db2DataSource . setPassword ( "123456" ) ;
db2DataSource . setUser ( "test" ) ;
Assert . assertEquals ( "jdbc:db2://127.0.0.1:50000/test" , db2DataSource . getJdbcUrl ( ) ) ;
//set fake principal
db2DataSource . setPrincipal ( "fake principal" ) ;
Assert . assertEquals ( "jdbc:db2://127.0.0.1:50000/test" , db2DataSource . getJdbcUrl ( ) ) ;
//set fake other
db2DataSource . setOther ( "charset=UTF-8" ) ;
Assert . assertEquals ( "jdbc:db2://127.0.0.1:50000/test:charset=UTF-8" , db2DataSource . getJdbcUrl ( ) ) ;
}
@Test
public void testGetPassword ( ) {
BaseDataSource dataSource = new BaseDataSource ( ) {
@Override
public String driverClassSelector ( ) {
return null ;
}
@Override
public DbType dbTypeSelector ( ) {
return null ;
}
} ;
String password = "" ;
dataSource . setPassword ( password ) ;
Assert . assertEquals ( "" , dataSource . getPassword ( ) ) ;
password = "IUAjJCVeJipNVEl6TkRVMg==" ;
dataSource . setPassword ( password ) ;
Assert . assertNotNull ( dataSource . getPassword ( ) ) ;
Assert . assertNotNull ( dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
PropertyUtils . setValue ( Constants . DATASOURCE_ENCRYPTION_ENABLE , "true" ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "123456" , dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
PropertyUtils . setValue ( Constants . DATASOURCE_ENCRYPTION_ENABLE , "false" ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
dataSource . setPassword ( password ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
Assert . assertEquals ( "IUAjJCVeJipNVEl6TkRVMg==" , dataSource . getPassword ( ) ) ;
}
}