|
@@ -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(){
|
|
|
-
|
|
|
- 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(){
|
|
|
-
|
|
|
- DataSource dataSource = insertOne();
|
|
|
-
|
|
|
- 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();
|
|
|
-
|
|
|
- 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();
|
|
|
-
|
|
|
- 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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|