You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by lg...@apache.org on 2019/12/03 07:30:18 UTC
[incubator-dolphinscheduler] branch dev-db updated: 1,modify DateUtils,add getCurrentDate method 2,AccessTokenMapperTest UT modify (#1378)
This is an automated email from the ASF dual-hosted git repository.
lgcareer pushed a commit to branch dev-db
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev-db by this push:
new 5947fd5 1,modify DateUtils,add getCurrentDate method 2,AccessTokenMapperTest UT modify (#1378)
5947fd5 is described below
commit 5947fd526ed7ec46a90bd59a4effe0ef3941da4e
Author: qiaozhanwei <qi...@outlook.com>
AuthorDate: Tue Dec 3 15:30:07 2019 +0800
1,modify DateUtils,add getCurrentDate method 2,AccessTokenMapperTest UT modify (#1378)
* ConnectionFactory add paging intercepter
* remove spotbugs-annotations.jar LGPL protocol
* test
* catch exception transaction method does not take effect to modify
* .evn rollback
* DataSourceService rollback
* LogViewServiceGrpc rollback
* dockerfile add application-api.properties and change application.properties to application-dao.properties
* server startup error modify
* data type convert error ,email send error bug fix
* Merge remote-tracking branch 'remotes/upstream/dev-db' into dev-db
# Conflicts:
# dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/CombinedApplicationServer.java
* revert sql.vue
* revert CommandType
* revert CommandType
* revert
* 1,modify DateUtils,add getCurrentDate method
2,AccessTokenMapperTest UT modify
---
.../dolphinscheduler/common/utils/DateUtils.java | 67 ++++---
.../dao/mapper/AccessTokenMapperTest.java | 204 ++++++++++++++++-----
2 files changed, 204 insertions(+), 67 deletions(-)
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/DateUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/DateUtils.java
index c0f99c8..0f30e7f 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/DateUtils.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/DateUtils.java
@@ -20,6 +20,7 @@ import org.apache.dolphinscheduler.common.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -35,20 +36,20 @@ public class DateUtils {
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
/**
- * <code>java.util.Date</code> to <code>java.time.LocalDateTime</code>
- * use default zone
- * @param date
- * @return
+ * date to local datetime
+ *
+ * @param date date
+ * @return local datetime
*/
private static LocalDateTime date2LocalDateTime(Date date) {
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
}
/**
- * <code>java.time.LocalDateTime</code> to <code>java.util.Date</code>
- * use default zone
- * @param localDateTime
- * @return
+ * local datetime to date
+ *
+ * @param localDateTime local datetime
+ * @return date
*/
private static Date localDateTime2Date(LocalDateTime localDateTime) {
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
@@ -56,43 +57,51 @@ public class DateUtils {
}
/**
- * @return get the formatted date string for the current time
+ * get current date str
+ *
+ * @return date string
*/
public static String getCurrentTime() {
return getCurrentTime(Constants.YYYY_MM_DD_HH_MM_SS);
}
/**
- * @param format format
- * @return get the date string in the specified format of the current time
+ * get the date string in the specified format of the current time
+ *
+ * @param format date format
+ * @return date string
*/
public static String getCurrentTime(String format) {
-// return new SimpleDateFormat(format).format(new Date());
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
}
/**
+ * get the formatted date string
+ *
* @param date date
* @param format e.g. yyyy-MM-dd HH:mm:ss
- * @return get the formatted date string
+ * @return date string
*/
public static String format(Date date, String format) {
-// return new SimpleDateFormat(format).format(date);
return format(date2LocalDateTime(date), format);
}
/**
+ * get the formatted date string
+ *
* @param localDateTime local data time
- * @param format e.g. yyyy-MM-dd HH:mm:ss
- * @return get the formatted date string
+ * @param format yyyy-MM-dd HH:mm:ss
+ * @return date string
*/
public static String format(LocalDateTime localDateTime, String format) {
return localDateTime.format(DateTimeFormatter.ofPattern(format));
}
/**
+ * convert time to yyyy-MM-dd HH:mm:ss format
+ *
* @param date date
- * @return convert time to yyyy-MM-dd HH:mm:ss format
+ * @return date string
*/
public static String dateToString(Date date) {
return format(date, Constants.YYYY_MM_DD_HH_MM_SS);
@@ -100,13 +109,14 @@ public class DateUtils {
/**
+ * convert string to date and time
+ *
* @param date date
* @param format format
- * @return convert string to date and time
+ * @return date
*/
public static Date parse(String date, String format) {
try {
- // return new SimpleDateFormat(format).parse(date);
LocalDateTime ldt = LocalDateTime.parse(date, DateTimeFormatter.ofPattern(format));
return localDateTime2Date(ldt);
} catch (Exception e) {
@@ -115,6 +125,7 @@ public class DateUtils {
return null;
}
+
/**
* convert date str to yyyy-MM-dd HH:mm:ss format
*
@@ -228,8 +239,8 @@ public class DateUtils {
/**
* get monday
- * <p>
- * note: Set the first day of the week to Monday, the default is Sunday</p>
+ *
+ * note: Set the first day of the week to Monday, the default is Sunday
* @param date date
* @return get monday
*/
@@ -246,7 +257,7 @@ public class DateUtils {
/**
* get sunday
- * <p>
+ *
* note: Set the first day of the week to Monday, the default is Sunday
* @param date date
* @return get sunday
@@ -263,6 +274,7 @@ public class DateUtils {
/**
* get first day of month
+ *
* @param date date
* @return first day of month
* */
@@ -277,6 +289,7 @@ public class DateUtils {
/**
* get some hour of day
+ *
* @param date date
* @param hours hours
* @return some hour of day
@@ -295,6 +308,7 @@ public class DateUtils {
/**
* get last day of month
+ *
* @param date date
* @return get last day of month
*/
@@ -372,5 +386,12 @@ public class DateUtils {
return cal.getTime();
}
-
+ /**
+ * get current date
+ * @return current date
+ */
+ public static Date getCurrentDate() {
+ return DateUtils.parse(DateUtils.getCurrentTime(),
+ Constants.YYYY_MM_DD_HH_MM_SS);
+ }
}
diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapperTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapperTest.java
index 651b749..eaf969a 100644
--- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapperTest.java
+++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/AccessTokenMapperTest.java
@@ -16,95 +16,211 @@
*/
package org.apache.dolphinscheduler.dao.mapper;
+import org.apache.dolphinscheduler.common.enums.UserType;
+import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.dao.entity.AccessToken;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.dolphinscheduler.dao.entity.User;
import org.junit.Assert;
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 javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.greaterThan;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+/**
+ * AccessToken mapper test
+ */
@RunWith(SpringRunner.class)
@SpringBootTest
+@Transactional
+@Rollback(true)
public class AccessTokenMapperTest {
-
- @Resource
+ @Autowired
AccessTokenMapper accessTokenMapper;
+ @Autowired
+ UserMapper userMapper;
/**
- * insert
- * @return AccessToken
+ * test insert
+ * @throws Exception
*/
- private AccessToken insertOne(){
- //insertOne
- AccessToken accessToken = new AccessToken();
- accessToken.setUserId(4);
- accessToken.setToken("hello, access token");
- accessToken.setCreateTime(new Date());
- accessToken.setUpdateTime(new Date());
- accessToken.setExpireTime(new Date());
- accessTokenMapper.insert(accessToken);
- return accessToken;
+ @Test
+ public void testInsert() throws Exception{
+ Integer userId = 1;
+
+ AccessToken accessToken = createAccessToken(userId);
+ assertNotNull(accessToken.getId());
+ assertThat(accessToken.getId(), greaterThan(0));
}
+
/**
- * test update
+ * test select by id
+ * @throws Exception
*/
@Test
- public void testUpdate(){
- //insertOne
- AccessToken accessToken = insertOne();
- //update
- accessToken.setToken("hello, token");
- int update = accessTokenMapper.updateById(accessToken);
- accessTokenMapper.deleteById(accessToken.getId());
- Assert.assertEquals(update, 1);
+ public void testSelectById() throws Exception{
+ Integer userId = 1;
+
+ AccessToken accessToken = createAccessToken(userId);
+
+ AccessToken resultAccessToken
+ = accessTokenMapper.selectById(accessToken.getId());
+
+ assertEquals(accessToken, resultAccessToken);
+
}
/**
- * test delete
+ * test page
*/
@Test
- public void testDelete(){
+ public void testSelectAccessTokenPage() throws Exception{
+ Integer count = 4;
+ String userName = "zhangsan";
+
+ Integer offset = 2;
+ Integer size = 2;
+
+
+ Map<Integer, AccessToken> accessTokenMap = createAccessTokens(count, userName);
+
+ Page page = new Page(offset, size);
+ IPage<AccessToken> accessTokenPage = accessTokenMapper.selectAccessTokenPage(page, userName, 0);
- AccessToken accessToken = insertOne();
- int delete = accessTokenMapper.deleteById(accessToken.getId());
- Assert.assertEquals(delete, 1);
+ assertEquals(Integer.valueOf(accessTokenPage.getRecords().size()),size);
+
+
+ for (AccessToken accessToken : accessTokenPage.getRecords()){
+ AccessToken resultAccessToken = accessTokenMap.get(accessToken.getId());
+ assertEquals(accessToken,resultAccessToken);
+ }
}
+
/**
- * test query
+ * test update
*/
@Test
- public void testQuery(){
+ public void testUpdate() throws Exception{
+ Integer userId = 1;
- AccessToken accessToken = insertOne();
- //query
- List<AccessToken> token = accessTokenMapper.selectList(null);
- Assert.assertNotEquals(token.size(), 0);
- accessTokenMapper.deleteById(accessToken.getId());
+ AccessToken accessToken = createAccessToken(userId);
+ //update
+ accessToken.setToken("56789");
+ accessToken.setExpireTime(DateUtils.getCurrentDate());
+ accessToken.setUpdateTime(DateUtils.getCurrentDate());
+
+ accessTokenMapper.updateById(accessToken);
+
+ AccessToken resultAccessToken = accessTokenMapper.selectById(accessToken.getId());
+ assertEquals(accessToken, resultAccessToken);
}
/**
- * test page
+ * test delete
*/
@Test
- public void testSelectAccessTokenPage() {
- AccessToken accessToken = insertOne();
- Page page = new Page(1, 3);
- String userName = "";
- IPage<AccessToken> accessTokenPage = accessTokenMapper.selectAccessTokenPage(page, userName, 4);
- Assert.assertNotEquals(accessTokenPage.getTotal(), 0);
+ public void testDelete() throws Exception{
+ Integer userId = 1;
+
+ AccessToken accessToken = createAccessToken(userId);
accessTokenMapper.deleteById(accessToken.getId());
+
+ AccessToken resultAccessToken =
+ accessTokenMapper.selectById(accessToken.getId());
+ assertNull(resultAccessToken);
+ }
+
+
+ /**
+ * create accessTokens
+ * @param count
+ * @param userName
+ * @return
+ * @throws Exception
+ */
+ private Map<Integer,AccessToken> createAccessTokens(
+ Integer count,String userName) throws Exception{
+
+ User user = createUser(userName);
+
+ Map<Integer,AccessToken> accessTokenMap = new HashMap<>();
+ for (int i = 1 ; i<= count ; i++){
+ AccessToken accessToken = createAccessToken(user.getId(),userName);
+
+ accessTokenMap.put(accessToken.getId(),accessToken);
+ }
+ return accessTokenMap;
+ }
+
+ /**
+ * create user
+ * @param userName
+ * @return
+ * @throws Exception
+ */
+ private User createUser(String userName) throws Exception{
+ User user = new User();
+ user.setUserName(userName);
+ user.setUserPassword("123");
+ user.setUserType(UserType.GENERAL_USER);
+ user.setEmail("test@qq.com");
+ user.setPhone("13102557272");
+ user.setTenantId(1);
+ user.setCreateTime(DateUtils.getCurrentDate());
+ user.setUpdateTime(DateUtils.getCurrentDate());
+ user.setQueue("default");
+
+ userMapper.insert(user);
+
+ return user;
}
+ /**
+ * create access token
+ *
+ * @return AccessToken
+ */
+ private AccessToken createAccessToken(Integer userId,String userName)throws Exception{
+ Random random = new Random();
+ //insertOne
+ AccessToken accessToken = new AccessToken();
+ accessToken.setUserName(userName);
+ accessToken.setUserId(userId);
+ accessToken.setToken(String.valueOf(random.nextLong()));
+ accessToken.setCreateTime(DateUtils.getCurrentDate());
+ accessToken.setUpdateTime(DateUtils.getCurrentDate());
+ accessToken.setExpireTime(DateUtils.getCurrentDate());
+
+ accessTokenMapper.insert(accessToken);
+
+ return accessToken;
+ }
+
+ /**
+ * create access token
+ *
+ * @return AccessToken
+ */
+ private AccessToken createAccessToken(Integer userId)throws Exception{
+ return createAccessToken(userId,null);
+ }
}
\ No newline at end of file