Add ut for ExternalDataSourceProperties
This commit is contained in:
parent
768713ec05
commit
8295a3ef96
@ -0,0 +1,113 @@
|
||||
package com.alibaba.nacos.config.server.service.datasource;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.springframework.mock.env.MockEnvironment;
|
||||
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
|
||||
public class ExternalDataSourcePropertiesTest {
|
||||
|
||||
public static final String JDBC_URL =
|
||||
"jdbc:mysql://127.0.0.1:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC";
|
||||
public static final String PASSWORD = "nacos";
|
||||
public static final String USERNAME = "nacos_devtest";
|
||||
|
||||
@Test
|
||||
public void external_datasource_normaly() {
|
||||
HikariDataSource expectedDataSource = new HikariDataSource();
|
||||
expectedDataSource.setJdbcUrl(JDBC_URL);
|
||||
expectedDataSource.setUsername(USERNAME);
|
||||
expectedDataSource.setPassword(PASSWORD);
|
||||
MockEnvironment environment = new MockEnvironment();
|
||||
environment.setProperty("db.num", "1");
|
||||
environment.setProperty("db.user", USERNAME);
|
||||
environment.setProperty("db.password", PASSWORD);
|
||||
environment.setProperty("db.url.0", JDBC_URL);
|
||||
List<HikariDataSource> dataSources = new ExternalDataSourceProperties().build(environment, (dataSource -> {
|
||||
Assert.assertEquals(dataSource.getJdbcUrl(), expectedDataSource.getJdbcUrl());
|
||||
Assert.assertEquals(dataSource.getUsername(), expectedDataSource.getUsername());
|
||||
Assert.assertEquals(dataSource.getPassword(), expectedDataSource.getPassword());
|
||||
|
||||
}));
|
||||
Assert.assertEquals(dataSources.size(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void external_datasource_to_assert_multi_jdbc_url() {
|
||||
|
||||
HikariDataSource expectedDataSource = new HikariDataSource();
|
||||
expectedDataSource.setJdbcUrl(JDBC_URL);
|
||||
expectedDataSource.setUsername(USERNAME);
|
||||
expectedDataSource.setPassword(PASSWORD);
|
||||
MockEnvironment environment = new MockEnvironment();
|
||||
environment.setProperty("db.num", "2");
|
||||
environment.setProperty("db.user", USERNAME);
|
||||
environment.setProperty("db.password", PASSWORD);
|
||||
environment.setProperty("db.url.0", JDBC_URL);
|
||||
environment.setProperty("db.url.1", JDBC_URL);
|
||||
List<HikariDataSource> dataSources = new ExternalDataSourceProperties().build(environment, (dataSource -> {
|
||||
Assert.assertEquals(dataSource.getJdbcUrl(), expectedDataSource.getJdbcUrl());
|
||||
Assert.assertEquals(dataSource.getUsername(), expectedDataSource.getUsername());
|
||||
Assert.assertEquals(dataSource.getPassword(), expectedDataSource.getPassword());
|
||||
|
||||
}));
|
||||
Assert.assertEquals(dataSources.size(), 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void external_datasource_to_assert_multi_password_and_username() {
|
||||
|
||||
HikariDataSource expectedDataSource = new HikariDataSource();
|
||||
expectedDataSource.setJdbcUrl(JDBC_URL);
|
||||
expectedDataSource.setUsername(USERNAME);
|
||||
expectedDataSource.setPassword(PASSWORD);
|
||||
MockEnvironment environment = new MockEnvironment();
|
||||
environment.setProperty("db.num", "2");
|
||||
environment.setProperty("db.user.0", USERNAME);
|
||||
environment.setProperty("db.user.1", USERNAME);
|
||||
environment.setProperty("db.password.0", PASSWORD);
|
||||
environment.setProperty("db.password.1", PASSWORD);
|
||||
environment.setProperty("db.url.0", JDBC_URL);
|
||||
environment.setProperty("db.url.1", JDBC_URL);
|
||||
List<HikariDataSource> dataSources = new ExternalDataSourceProperties().build(environment, (dataSource -> {
|
||||
Assert.assertEquals(dataSource.getJdbcUrl(), expectedDataSource.getJdbcUrl());
|
||||
Assert.assertEquals(dataSource.getUsername(), expectedDataSource.getUsername());
|
||||
Assert.assertEquals(dataSource.getPassword(), expectedDataSource.getPassword());
|
||||
|
||||
}));
|
||||
Assert.assertEquals(dataSources.size(), 2);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void external_datasource_to_assert_illegal_argument() {
|
||||
|
||||
MockEnvironment environment = new MockEnvironment();
|
||||
new ExternalDataSourceProperties().build(environment, null);
|
||||
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void external_datasource_to_assert_illegal_argument_2() {
|
||||
|
||||
HikariDataSource expectedDataSource = new HikariDataSource();
|
||||
expectedDataSource.setJdbcUrl(JDBC_URL);
|
||||
expectedDataSource.setUsername(USERNAME);
|
||||
expectedDataSource.setPassword(PASSWORD);
|
||||
MockEnvironment environment = new MockEnvironment();
|
||||
// error num of db
|
||||
environment.setProperty("db.num", "2");
|
||||
environment.setProperty("db.user", USERNAME);
|
||||
environment.setProperty("db.password", PASSWORD);
|
||||
environment.setProperty("db.url.0", JDBC_URL);
|
||||
List<HikariDataSource> dataSources = new ExternalDataSourceProperties().build(environment, (dataSource -> {
|
||||
Assert.assertEquals(dataSource.getJdbcUrl(), expectedDataSource.getJdbcUrl());
|
||||
Assert.assertEquals(dataSource.getUsername(), expectedDataSource.getUsername());
|
||||
Assert.assertEquals(dataSource.getPassword(), expectedDataSource.getPassword());
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user