|
|
|
@ -18,6 +18,7 @@ package org.apache.dolphinscheduler.dao.mapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.dolphinscheduler.common.enums.DbType; |
|
|
|
|
import org.apache.dolphinscheduler.common.utils.DateUtils; |
|
|
|
|
import org.apache.dolphinscheduler.dao.entity.DataSource; |
|
|
|
|
import org.apache.dolphinscheduler.dao.entity.DatasourceUser; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
@ -27,88 +28,116 @@ import org.junit.Test;
|
|
|
|
|
import org.junit.runner.RunWith; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.boot.test.context.SpringBootTest; |
|
|
|
|
import org.springframework.test.annotation.Rollback; |
|
|
|
|
import org.springframework.test.context.junit4.SpringRunner; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
|
import static org.hamcrest.Matchers.*; |
|
|
|
|
import static org.junit.Assert.*; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* datasource mapper test |
|
|
|
|
*/ |
|
|
|
|
@RunWith(SpringRunner.class) |
|
|
|
|
@SpringBootTest |
|
|
|
|
@Transactional |
|
|
|
|
@Rollback(true) |
|
|
|
|
public class DataSourceMapperTest { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* datasource mapper |
|
|
|
|
*/ |
|
|
|
|
@Autowired |
|
|
|
|
DataSourceMapper dataSourceMapper; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* datasource user relation mapper |
|
|
|
|
*/ |
|
|
|
|
@Autowired |
|
|
|
|
DataSourceUserMapper dataSourceUserMapper; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* insert |
|
|
|
|
* @return DataSource |
|
|
|
|
* test insert |
|
|
|
|
*/ |
|
|
|
|
private DataSource insertOne(){ |
|
|
|
|
//insertOne
|
|
|
|
|
DataSource dataSource = new DataSource(); |
|
|
|
|
dataSource.setUserId(4); |
|
|
|
|
dataSource.setName("data source test"); |
|
|
|
|
dataSource.setType(DbType.MYSQL); |
|
|
|
|
dataSource.setNote("mysql test"); |
|
|
|
|
dataSource.setConnectionParams("hello mysql"); |
|
|
|
|
dataSource.setUpdateTime(new Date()); |
|
|
|
|
dataSource.setCreateTime(new Date()); |
|
|
|
|
dataSourceMapper.insert(dataSource); |
|
|
|
|
return dataSource; |
|
|
|
|
@Test |
|
|
|
|
public void testInsert(){ |
|
|
|
|
DataSource dataSource = createDataSource(); |
|
|
|
|
assertNotNull(dataSource.getId()); |
|
|
|
|
assertThat(dataSource.getId(), greaterThan(0)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* test update |
|
|
|
|
* test query |
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testUpdate(){ |
|
|
|
|
//insertOne
|
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
//update
|
|
|
|
|
dataSource.setUpdateTime(new Date()); |
|
|
|
|
int update = dataSourceMapper.updateById(dataSource); |
|
|
|
|
Assert.assertEquals(update, 1); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
public void testSelectById() { |
|
|
|
|
DataSource expectedDataSource = createDataSource(); |
|
|
|
|
DataSource actualDataSource = dataSourceMapper.selectById(expectedDataSource.getId()); |
|
|
|
|
assertEquals(expectedDataSource, actualDataSource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* test delete |
|
|
|
|
* test query |
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testDelete(){ |
|
|
|
|
public void testUpdate() { |
|
|
|
|
DataSource expectedDataSource = createDataSource(); |
|
|
|
|
|
|
|
|
|
expectedDataSource.setName("modify " + expectedDataSource.getName()); |
|
|
|
|
expectedDataSource.setNote("modifiy " + expectedDataSource.getNote()); |
|
|
|
|
expectedDataSource.setUserId(2); |
|
|
|
|
expectedDataSource.setType(DbType.HIVE); |
|
|
|
|
expectedDataSource.setConnectionParams("modify " + expectedDataSource.getConnectionParams()); |
|
|
|
|
expectedDataSource.setUpdateTime(DateUtils.getCurrentDate()); |
|
|
|
|
|
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
int delete = dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
Assert.assertEquals(delete, 1); |
|
|
|
|
dataSourceMapper.updateById(expectedDataSource); |
|
|
|
|
|
|
|
|
|
DataSource actualDataSource = dataSourceMapper.selectById(expectedDataSource.getId()); |
|
|
|
|
|
|
|
|
|
assertEquals(expectedDataSource, actualDataSource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* test query |
|
|
|
|
* test delete |
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testQuery() { |
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
//query
|
|
|
|
|
List<DataSource> dataSources = dataSourceMapper.selectList(null); |
|
|
|
|
Assert.assertNotEquals(dataSources.size(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
public void testDelete(){ |
|
|
|
|
DataSource expectedDataSource = createDataSource(); |
|
|
|
|
|
|
|
|
|
dataSourceMapper.deleteById(expectedDataSource.getId()); |
|
|
|
|
|
|
|
|
|
DataSource actualDataSource = dataSourceMapper.selectById(expectedDataSource.getId()); |
|
|
|
|
|
|
|
|
|
assertNull(actualDataSource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* test query datasource by type |
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testQueryDataSourceByType() { |
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
//query
|
|
|
|
|
List<DataSource> dataSources = dataSourceMapper.queryDataSourceByType( |
|
|
|
|
0, DbType.MYSQL.ordinal() |
|
|
|
|
); |
|
|
|
|
Assert.assertNotEquals(dataSources.size(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
Integer userId = 1; |
|
|
|
|
|
|
|
|
|
Map<Integer, DataSource> datasourceMap = createDataSourceMap(userId, "test"); |
|
|
|
|
|
|
|
|
|
List<DataSource> actualDataSources = dataSourceMapper.queryDataSourceByType( |
|
|
|
|
0, DbType.MYSQL.ordinal()); |
|
|
|
|
|
|
|
|
|
assertThat(actualDataSources.size(), greaterThanOrEqualTo(2)); |
|
|
|
|
|
|
|
|
|
for (DataSource actualDataSource : actualDataSources){ |
|
|
|
|
DataSource expectedDataSource = datasourceMap.get(actualDataSource.getId()); |
|
|
|
|
if (expectedDataSource != null){ |
|
|
|
|
assertEquals(expectedDataSource,actualDataSource); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -116,12 +145,23 @@ public class DataSourceMapperTest {
|
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testSelectPaging() { |
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
Page page = new Page(1, 3); |
|
|
|
|
IPage<DataSource> dataSourceIPage = dataSourceMapper.selectPaging(page, |
|
|
|
|
4, null); |
|
|
|
|
Assert.assertNotEquals(dataSourceIPage.getTotal(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
String name = "test"; |
|
|
|
|
Integer userId = 1; |
|
|
|
|
|
|
|
|
|
Map<Integer, DataSource> expectedDataSourceMap = createDataSourceMap(userId, name); |
|
|
|
|
|
|
|
|
|
Page page = new Page(0, 4); |
|
|
|
|
|
|
|
|
|
IPage<DataSource> dataSourceIPage = dataSourceMapper.selectPaging(page, userId, name); |
|
|
|
|
List<DataSource> actualDataSources = dataSourceIPage.getRecords(); |
|
|
|
|
|
|
|
|
|
for (DataSource actualDataSource : actualDataSources){ |
|
|
|
|
DataSource expectedDataSource = expectedDataSourceMap.get(actualDataSource.getId()); |
|
|
|
|
if (expectedDataSource != null){ |
|
|
|
|
assertEquals(expectedDataSource,actualDataSource); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -129,10 +169,17 @@ public class DataSourceMapperTest {
|
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testQueryDataSourceByName() { |
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
List<DataSource> dataSources = dataSourceMapper.queryDataSourceByName("data source test"); |
|
|
|
|
Assert.assertNotEquals(dataSources.size(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
String name = "test"; |
|
|
|
|
DataSource expectedDataSource = createDataSource(name); |
|
|
|
|
|
|
|
|
|
List<DataSource> actualDataSources = dataSourceMapper.queryDataSourceByName(name); |
|
|
|
|
|
|
|
|
|
for (DataSource actualDataSource : actualDataSources){ |
|
|
|
|
if (expectedDataSource.getId() == actualDataSource.getId()){ |
|
|
|
|
assertEquals(expectedDataSource,actualDataSource); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -140,17 +187,20 @@ public class DataSourceMapperTest {
|
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testQueryAuthedDatasource() { |
|
|
|
|
String name = "test"; |
|
|
|
|
Integer userId = 1; |
|
|
|
|
|
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
DatasourceUser datasourceUser = new DatasourceUser(); |
|
|
|
|
datasourceUser.setUserId(3); |
|
|
|
|
datasourceUser.setDatasourceId(dataSource.getId()); |
|
|
|
|
dataSourceUserMapper.insert(datasourceUser); |
|
|
|
|
Map<Integer, DataSource> expectedDataSourceMap = createDataSourceMap(userId, name); |
|
|
|
|
|
|
|
|
|
List<DataSource> actualDataSources = dataSourceMapper.queryAuthedDatasource(userId); |
|
|
|
|
|
|
|
|
|
for (DataSource actualDataSource : actualDataSources){ |
|
|
|
|
DataSource expectedDataSource = expectedDataSourceMap.get(actualDataSource.getId()); |
|
|
|
|
if (expectedDataSource != null){ |
|
|
|
|
assertEquals(expectedDataSource,actualDataSource); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<DataSource> dataSources = dataSourceMapper.queryAuthedDatasource(3); |
|
|
|
|
Assert.assertNotEquals(dataSources.size(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
dataSourceUserMapper.deleteById(datasourceUser.getId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -158,10 +208,19 @@ public class DataSourceMapperTest {
|
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testQueryDatasourceExceptUserId() { |
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
List<DataSource> dataSources = dataSourceMapper.queryDatasourceExceptUserId(3); |
|
|
|
|
Assert.assertNotEquals(dataSources.size(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
String name = "test"; |
|
|
|
|
Integer userId = 1; |
|
|
|
|
|
|
|
|
|
Map<Integer, DataSource> expectedDataSourceMap = createDataSourceMap(userId, name); |
|
|
|
|
|
|
|
|
|
List<DataSource> actualDataSources = dataSourceMapper.queryDatasourceExceptUserId(userId); |
|
|
|
|
|
|
|
|
|
for (DataSource actualDataSource : actualDataSources){ |
|
|
|
|
DataSource expectedDataSource = expectedDataSourceMap.get(actualDataSource.getId()); |
|
|
|
|
if (expectedDataSource != null){ |
|
|
|
|
assertEquals(expectedDataSource,actualDataSource); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -169,13 +228,107 @@ public class DataSourceMapperTest {
|
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void testListAllDataSourceByType() { |
|
|
|
|
Integer count = 10; |
|
|
|
|
|
|
|
|
|
Map<Integer, DataSource> expectedDataSourceMap = createDataSourceMap(count); |
|
|
|
|
|
|
|
|
|
List<DataSource> actualDataSources = dataSourceMapper.listAllDataSourceByType(DbType.MYSQL.ordinal()); |
|
|
|
|
|
|
|
|
|
assertThat(actualDataSources.size(), greaterThanOrEqualTo(count)); |
|
|
|
|
|
|
|
|
|
for (DataSource actualDataSource : actualDataSources){ |
|
|
|
|
DataSource expectedDataSource = expectedDataSourceMap.get(actualDataSource.getId()); |
|
|
|
|
if (expectedDataSource != null){ |
|
|
|
|
assertEquals(expectedDataSource,actualDataSource); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* create datasource relation |
|
|
|
|
* @param userId |
|
|
|
|
*/ |
|
|
|
|
private Map<Integer,DataSource> createDataSourceMap(Integer userId,String name){ |
|
|
|
|
|
|
|
|
|
Map<Integer,DataSource> dataSourceMap = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
DataSource dataSource = createDataSource(userId, name); |
|
|
|
|
|
|
|
|
|
dataSourceMap.put(dataSource.getId(),dataSource); |
|
|
|
|
|
|
|
|
|
DataSource otherDataSource = createDataSource(userId + 1,name); |
|
|
|
|
|
|
|
|
|
DatasourceUser datasourceUser = new DatasourceUser(); |
|
|
|
|
|
|
|
|
|
datasourceUser.setDatasourceId(otherDataSource.getId()); |
|
|
|
|
datasourceUser.setUserId(userId); |
|
|
|
|
datasourceUser.setPerm(7); |
|
|
|
|
datasourceUser.setCreateTime(DateUtils.getCurrentDate()); |
|
|
|
|
datasourceUser.setUpdateTime(DateUtils.getCurrentDate()); |
|
|
|
|
|
|
|
|
|
dataSourceUserMapper.insert(datasourceUser); |
|
|
|
|
|
|
|
|
|
dataSourceMap.put(otherDataSource.getId(), otherDataSource); |
|
|
|
|
|
|
|
|
|
return dataSourceMap; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* create datasource map |
|
|
|
|
* @param count datasource count |
|
|
|
|
* @return datasource map |
|
|
|
|
*/ |
|
|
|
|
private Map<Integer,DataSource> createDataSourceMap(Integer count){ |
|
|
|
|
Map<Integer,DataSource> dataSourceMap = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
DataSource dataSource = insertOne(); |
|
|
|
|
for (int i = 0 ; i < count ;i++){ |
|
|
|
|
DataSource dataSource = createDataSource("test"); |
|
|
|
|
dataSourceMap.put(dataSource.getId(),dataSource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<DataSource> dataSources = dataSourceMapper.queryDataSourceByType(4, DbType.MYSQL.ordinal()); |
|
|
|
|
Assert.assertNotEquals(dataSources.size(), 0); |
|
|
|
|
List<DataSource> dataSources2 = dataSourceMapper.queryDataSourceByType(10091, DbType.MYSQL.ordinal()); |
|
|
|
|
Assert.assertEquals(dataSources2.size(), 0); |
|
|
|
|
dataSourceMapper.deleteById(dataSource.getId()); |
|
|
|
|
return dataSourceMap; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* create datasource |
|
|
|
|
* @return datasource |
|
|
|
|
*/ |
|
|
|
|
private DataSource createDataSource(){ |
|
|
|
|
return createDataSource(1,"test"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* create datasource |
|
|
|
|
* @param name name |
|
|
|
|
* @return datasource |
|
|
|
|
*/ |
|
|
|
|
private DataSource createDataSource(String name){ |
|
|
|
|
return createDataSource(1,name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* create datasource |
|
|
|
|
* @param userId userId |
|
|
|
|
* @param name name |
|
|
|
|
* @return datasource |
|
|
|
|
*/ |
|
|
|
|
private DataSource createDataSource(Integer userId,String name){ |
|
|
|
|
Random random = new Random(); |
|
|
|
|
DataSource dataSource = new DataSource(); |
|
|
|
|
dataSource.setUserId(userId); |
|
|
|
|
dataSource.setName(name); |
|
|
|
|
dataSource.setType(DbType.MYSQL); |
|
|
|
|
dataSource.setNote("mysql test"); |
|
|
|
|
dataSource.setConnectionParams("hello mysql"); |
|
|
|
|
dataSource.setUpdateTime(DateUtils.getCurrentDate()); |
|
|
|
|
dataSource.setCreateTime(DateUtils.getCurrentDate()); |
|
|
|
|
|
|
|
|
|
dataSourceMapper.insert(dataSource); |
|
|
|
|
|
|
|
|
|
return dataSource; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |