This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 0cce2201a8 [TEST] fill up access token test (#15710)
0cce2201a8 is described below
commit 0cce2201a866a1d5ccf552a4e7a8de7fddf7e1bc
Author: Evan Sun <[email protected]>
AuthorDate: Mon Mar 18 10:40:56 2024 +0800
[TEST] fill up access token test (#15710)
Co-authored-by: abzymeinsjtu <[email protected]>
Co-authored-by: Rick Cheng <[email protected]>
---
.../api/service/AccessTokenServiceTest.java | 66 ++++++++++++++++++++--
1 file changed, 60 insertions(+), 6 deletions(-)
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
index 8db009bb71..175394b606 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AccessTokenServiceTest.java
@@ -98,6 +98,10 @@ public class AccessTokenServiceTest {
@Test
public void testQueryAccessTokenByUser() {
User user = this.getLoginUser();
+ user.setUserType(UserType.GENERAL_USER);
+ assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
+ () -> accessTokenService.queryAccessTokenByUser(user, 2));
+
user.setUserType(UserType.ADMIN_USER);
List<AccessToken> accessTokenList =
Lists.newArrayList(this.getEntity());
when(this.accessTokenMapper.queryAccessTokenByUser(Mockito.anyInt())).thenReturn(accessTokenList);
@@ -106,14 +110,34 @@ public class AccessTokenServiceTest {
@Test
public void testCreateToken() {
+ User user = getLoginUser();
+
+ // Throw ServiceException when user has no permission
+ assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
+ () -> accessTokenService.createToken(user, 2, getDate(),
"AccessTokenServiceTest"));
+
+ user.setId(0);
+
+ // Throw ServiceException when user is invalid
+ assertThrowsServiceException(Status.REQUEST_PARAMS_NOT_VALID_ERROR,
+ () -> accessTokenService.createToken(user, 0, getDate(),
"AccessTokenServiceTest"));
+
+ user.setId(1);
+
// Given Token
when(accessTokenMapper.insert(any(AccessToken.class))).thenReturn(2);
assertDoesNotThrow(() -> {
- accessTokenService.createToken(getLoginUser(), 1, getDate(),
"AccessTokenServiceTest");
+ accessTokenService.createToken(user, 1, getDate(),
"AccessTokenServiceTest");
});
// Token is absent
- assertDoesNotThrow(() ->
accessTokenService.createToken(getLoginUser(), 1, getDate(), null));
+ assertDoesNotThrow(
+ () -> accessTokenService.createToken(user, 1, getDate(),
null));
+
+ // Throw Service Exception when insert failed
+ when(accessTokenMapper.insert(any(AccessToken.class))).thenReturn(0);
+ assertThrowsServiceException(Status.CREATE_ACCESS_TOKEN_ERROR,
+ () -> accessTokenService.createToken(user, 1, getDate(),
"AccessTokenServiceTest"));
}
@Test
@@ -127,8 +151,9 @@ public class AccessTokenServiceTest {
@Test
public void testDelAccessTokenById() {
+ AccessToken accessToken = getEntity();
- when(accessTokenMapper.selectById(1)).thenReturn(getEntity());
+ when(accessTokenMapper.selectById(1)).thenReturn(accessToken);
User userLogin = new User();
userLogin.setId(1);
userLogin.setUserType(UserType.ADMIN_USER);
@@ -139,10 +164,19 @@ public class AccessTokenServiceTest {
// not exist
assertThrowsServiceException(Status.ACCESS_TOKEN_NOT_EXIST,
() -> accessTokenService.deleteAccessTokenById(userLogin, 0));
+
// no operate
userLogin.setId(2);
+ userLogin.setUserType(UserType.GENERAL_USER);
+
+
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ACCESS_TOKEN,
2,
+ ACCESS_TOKEN_DELETE, baseServiceLogger)).thenReturn(true);
+
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.ACCESS_TOKEN,
null,
+ 2, baseServiceLogger)).thenReturn(true);
+
assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
() -> accessTokenService.deleteAccessTokenById(userLogin, 1));
+
// success
userLogin.setId(1);
userLogin.setUserType(UserType.ADMIN_USER);
@@ -153,9 +187,12 @@ public class AccessTokenServiceTest {
@Test
public void testUpdateToken() {
- User user = new User();
- user.setId(1);
- user.setUserType(UserType.ADMIN_USER);
+ // operation perm check
+
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ACCESS_TOKEN,
1,
+ ACCESS_TOKEN_UPDATE, baseServiceLogger)).thenReturn(false);
+ assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
+ () -> accessTokenService.updateToken(getLoginUser(), 1, 1,
getDate(), "token"));
+
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ACCESS_TOKEN,
1,
ACCESS_TOKEN_UPDATE, baseServiceLogger)).thenReturn(true);
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.ACCESS_TOKEN,
null, 0,
@@ -176,6 +213,23 @@ public class AccessTokenServiceTest {
baseServiceLogger)).thenReturn(true);
assertThrowsServiceException(Status.ACCESS_TOKEN_NOT_EXIST,
() -> accessTokenService.updateToken(getLoginUser(), 2,
Integer.MAX_VALUE, getDate(), "token"));
+
+ // resource perm check
+ User user = getLoginUser();
+ user.setUserType(UserType.GENERAL_USER);
+ user.setId(2);
+
when(resourcePermissionCheckService.operationPermissionCheck(AuthorizationType.ACCESS_TOKEN,
2,
+ ACCESS_TOKEN_UPDATE, baseServiceLogger)).thenReturn(true);
+
when(resourcePermissionCheckService.resourcePermissionCheck(AuthorizationType.ACCESS_TOKEN,
null, 2,
+ baseServiceLogger)).thenReturn(true);
+
+ assertThrowsServiceException(Status.USER_NO_OPERATION_PERM,
+ () -> accessTokenService.updateToken(user, 1,
Integer.MAX_VALUE, getDate(), "token"));
+
+ // Throw Service Exception when update failed
+
when(accessTokenMapper.updateById(any(AccessToken.class))).thenReturn(0);
+ assertThrowsServiceException(Status.ACCESS_TOKEN_NOT_EXIST,
+ () -> accessTokenService.updateToken(getLoginUser(), 1,
Integer.MAX_VALUE, getDate(), "token"));
}
private User getLoginUser() {