Skip to content

Commit 75e4057

Browse files
committed
restructure unit test and fix auth controller test
1 parent bd7d01c commit 75e4057

19 files changed

+89
-117
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.flowci.core.test;
2+
3+
import com.flowci.core.common.domain.Mongoable;
4+
import com.flowci.core.common.manager.SessionManager;
5+
import com.flowci.core.user.domain.User;
6+
import com.flowci.util.HashingHelper;
7+
import org.junit.Assert;
8+
import org.junit.Before;
9+
import org.mockito.Mockito;
10+
import org.springframework.boot.test.mock.mockito.MockBean;
11+
12+
import java.util.Optional;
13+
14+
public abstract class MockLoggedInScenario extends SpringScenario{
15+
16+
private final static User defaultAdminUser = new User();
17+
18+
static {
19+
defaultAdminUser.setId("112233");
20+
defaultAdminUser.setRole(User.Role.Admin);
21+
defaultAdminUser.setEmail("[email protected]");
22+
defaultAdminUser.setPasswordOnMd5(HashingHelper.md5("12345"));
23+
}
24+
25+
@MockBean
26+
protected SessionManager sessionManager;
27+
28+
@Before
29+
public void login() {
30+
Mockito.when(sessionManager.get()).thenReturn(defaultAdminUser);
31+
Mockito.when(sessionManager.getUserEmail()).thenReturn(defaultAdminUser.getEmail());
32+
Mockito.when(sessionManager.getCurrentAuditor()).thenReturn(Optional.of(defaultAdminUser.getEmail()));
33+
}
34+
35+
protected void shouldHasCreatedAtAndCreatedBy(Mongoable obj) {
36+
Assert.assertNotNull(obj.getCreatedAt());
37+
Assert.assertNotNull(obj.getCreatedBy());
38+
Assert.assertEquals(sessionManager.getUserEmail(), obj.getCreatedBy());
39+
}
40+
41+
protected void shouldHasUpdatedAtAndUpdatedBy(Mongoable obj) {
42+
Assert.assertNotNull(obj.getUpdatedAt());
43+
Assert.assertNotNull(obj.getUpdatedBy());
44+
Assert.assertEquals(sessionManager.getUserEmail(), obj.getUpdatedBy());
45+
}
46+
47+
}

core/src/test/java/com/flowci/core/test/SpringScenario.java

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616

1717
package com.flowci.core.test;
1818

19-
import com.flowci.core.common.domain.Mongoable;
2019
import com.flowci.core.common.domain.Settings;
21-
import com.flowci.core.common.manager.SessionManager;
2220
import com.flowci.core.common.rabbit.RabbitOperations;
2321
import com.flowci.core.common.service.SettingService;
2422
import com.flowci.core.flow.dao.FlowDao;
@@ -27,17 +25,12 @@
2725
import com.flowci.core.test.SpringScenario.Config;
2826
import com.flowci.core.test.auth.AuthHelper;
2927
import com.flowci.core.test.flow.FlowMockHelper;
30-
import com.flowci.core.user.domain.User;
3128
import com.flowci.core.user.service.UserService;
32-
import com.flowci.exception.NotFoundException;
33-
import com.flowci.util.HashingHelper;
3429
import lombok.extern.log4j.Log4j2;
3530
import org.assertj.core.util.Lists;
3631
import org.junit.After;
37-
import org.junit.Assert;
3832
import org.junit.Before;
3933
import org.junit.runner.RunWith;
40-
import org.mockito.Mock;
4134
import org.mockito.Mockito;
4235
import org.springframework.beans.factory.annotation.Autowired;
4336
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@@ -52,7 +45,10 @@
5245
import org.springframework.test.context.junit4.SpringRunner;
5346

5447
import java.io.InputStream;
55-
import java.util.*;
48+
import java.util.Collections;
49+
import java.util.LinkedList;
50+
import java.util.List;
51+
import java.util.Map;
5652

5753
/**
5854
* @author yang
@@ -100,21 +96,9 @@ public List<Template> getTemplates() {
10096
}
10197
}
10298

103-
private final static User defaultAdminUser = new User();
104-
105-
static {
106-
defaultAdminUser.setId("112233");
107-
defaultAdminUser.setRole(User.Role.Admin);
108-
defaultAdminUser.setEmail("[email protected]");
109-
defaultAdminUser.setPasswordOnMd5(HashingHelper.md5("12345"));
110-
}
111-
11299
@MockBean
113100
protected SettingService settingService;
114101

115-
@MockBean
116-
protected SessionManager sessionManager;
117-
118102
@Autowired
119103
protected UserService userService;
120104

@@ -159,18 +143,6 @@ public void queueCleanUp() {
159143
}
160144
}
161145

162-
protected void shouldHasCreatedAtAndCreatedBy(Mongoable obj) {
163-
Assert.assertNotNull(obj.getCreatedAt());
164-
Assert.assertNotNull(obj.getCreatedBy());
165-
Assert.assertEquals(sessionManager.getUserEmail(), obj.getCreatedBy());
166-
}
167-
168-
protected void shouldHasUpdatedAtAndUpdatedBy(Mongoable obj) {
169-
Assert.assertNotNull(obj.getUpdatedAt());
170-
Assert.assertNotNull(obj.getUpdatedBy());
171-
Assert.assertEquals(sessionManager.getUserEmail(), obj.getUpdatedBy());
172-
}
173-
174146
protected void addEventListener(ApplicationListener<?> listener) {
175147
applicationEventMulticaster.addApplicationListener(listener);
176148
listenersForTest.add(listener);
@@ -188,10 +160,4 @@ protected void multicastEvent(ApplicationEvent event) {
188160
protected InputStream load(String resource) {
189161
return SpringScenario.class.getClassLoader().getResourceAsStream(resource);
190162
}
191-
192-
protected void mockLogin() {
193-
Mockito.when(sessionManager.get()).thenReturn(defaultAdminUser);
194-
Mockito.when(sessionManager.getUserEmail()).thenReturn(defaultAdminUser.getEmail());
195-
Mockito.when(sessionManager.getCurrentAuditor()).thenReturn(Optional.of(defaultAdminUser.getEmail()));
196-
}
197163
}

core/src/test/java/com/flowci/core/test/ZookeeperScenario.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
* @author yang
4545
*/
4646
@Log4j2
47-
public abstract class ZookeeperScenario extends SpringScenario {
47+
public abstract class ZookeeperScenario extends MockLoggedInScenario {
4848

4949
private final HttpHeaders headers = new HttpHeaders();
5050

core/src/test/java/com/flowci/core/test/agent/AgentControllerTest.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.flowci.core.common.config.AppProperties;
2525
import com.flowci.core.common.domain.StatusCode;
2626
import com.flowci.core.common.domain.http.ResponseMessage;
27+
import com.flowci.core.test.MockLoggedInScenario;
2728
import com.flowci.core.test.MockMvcHelper;
2829
import com.flowci.core.test.SpringScenario;
2930
import com.flowci.exception.ErrorCode;
@@ -42,7 +43,7 @@
4243
/**
4344
* @author yang
4445
*/
45-
public class AgentControllerTest extends SpringScenario {
46+
public class AgentControllerTest extends MockLoggedInScenario {
4647

4748
private static final TypeReference<ResponseMessage<Agent>> AgentResponseType =
4849
new TypeReference<ResponseMessage<Agent>>() {
@@ -61,14 +62,6 @@ public class AgentControllerTest extends SpringScenario {
6162
@Autowired
6263
private ObjectMapper objectMapper;
6364

64-
@Autowired
65-
private AppProperties.RabbitMQ rabbitConfig;
66-
67-
@Before
68-
public void login() {
69-
mockLogin();
70-
}
71-
7265
@Test
7366
public void should_duplicate_error_when_create_agent_with_same_name() throws Throwable {
7467
createAgent("same.name", null, StatusCode.OK);

core/src/test/java/com/flowci/core/test/agent/AgentHostServiceTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@ public class AgentHostServiceTest extends ZookeeperScenario {
2222
@Autowired
2323
private AgentHostService agentHostService;
2424

25-
@Before
26-
public void login() {
27-
mockLogin();
28-
}
29-
3025
@After
3126
public void cleanup() {
3227
for (AgentHost h : agentHostService.list()) {

core/src/test/java/com/flowci/core/test/api/OpenRestServiceTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.flowci.core.job.domain.Job;
2727
import com.flowci.core.job.domain.JobOutput.ContentType;
2828
import com.flowci.core.job.domain.JobReport;
29+
import com.flowci.core.test.MockLoggedInScenario;
2930
import com.flowci.core.test.SpringScenario;
3031
import com.flowci.core.user.domain.User;
3132
import org.junit.Assert;
@@ -39,7 +40,7 @@
3940
import java.util.List;
4041
import java.util.Optional;
4142

42-
public class OpenRestServiceTest extends SpringScenario {
43+
public class OpenRestServiceTest extends MockLoggedInScenario {
4344

4445
@MockBean
4546
private JobDao jobDao;
@@ -53,11 +54,6 @@ public class OpenRestServiceTest extends SpringScenario {
5354
@Autowired
5455
private OpenRestService openRestService;
5556

56-
@Before
57-
public void login() {
58-
mockLogin();
59-
}
60-
6157
@Test
6258
public void should_list_all_flow_users() {
6359
Flow flow = flowService.create("user-test", new CreateOption());

core/src/test/java/com/flowci/core/test/auth/AuthControllerTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.flowci.core.auth.service.AuthService;
2222
import com.flowci.core.common.domain.StatusCode;
2323
import com.flowci.core.common.helper.ThreadHelper;
24+
import com.flowci.core.common.manager.SessionManager;
2425
import com.flowci.core.test.SpringScenario;
2526
import com.flowci.core.user.domain.User;
2627
import com.flowci.core.common.domain.http.ResponseMessage;
@@ -31,11 +32,15 @@
3132
import org.junit.Before;
3233
import org.junit.Test;
3334
import org.springframework.beans.factory.annotation.Autowired;
35+
import org.springframework.context.annotation.Primary;
3436

3537
public class AuthControllerTest extends SpringScenario {
3638

3739
private User user;
3840

41+
@Autowired
42+
private SessionManager sessionManager;
43+
3944
@Autowired
4045
private AuthHelper authHelper;
4146

@@ -67,7 +72,7 @@ public void should_login_and_logout_successfully() throws Exception {
6772
Assert.assertTrue(authService.set(token));
6873

6974
// when: request logout
70-
ResponseMessage logoutMsg = authHelper.logout(token);
75+
var logoutMsg = authHelper.logout(token);
7176
Assert.assertEquals(StatusCode.OK, logoutMsg.getCode());
7277

7378
// then: should throw new AuthenticationException("Not logged in") exception

core/src/test/java/com/flowci/core/test/config/ConfigServiceTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.flowci.core.config.service.ConfigService;
77
import com.flowci.core.secret.domain.AuthSecret;
88
import com.flowci.core.secret.event.GetSecretEvent;
9+
import com.flowci.core.test.MockLoggedInScenario;
910
import com.flowci.core.test.SpringScenario;
1011
import com.flowci.domain.SimpleAuthPair;
1112
import org.junit.Assert;
@@ -18,19 +19,14 @@
1819
import static com.flowci.core.config.domain.Config.Category.SMTP;
1920
import static com.flowci.core.config.domain.Config.Category.TEXT;
2021

21-
public class ConfigServiceTest extends SpringScenario {
22+
public class ConfigServiceTest extends MockLoggedInScenario {
2223

2324
@MockBean
2425
private SpringEventManager eventManager;
2526

2627
@Autowired
2728
private ConfigService configService;
2829

29-
@Before
30-
public void init() {
31-
mockLogin();
32-
}
33-
3430
@Test
3531
public void should_create_smtp_config_with_secret() {
3632
// init:

core/src/test/java/com/flowci/core/test/flow/CronServiceTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ public class CronServiceTest extends ZookeeperScenario {
4343

4444
private final ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
4545

46-
@Before
47-
public void login() {
48-
mockLogin();
49-
}
50-
5146
@Test
5247
public void should_get_exec_time_from_crontab() throws InterruptedException {
5348
CronDefinition definition = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);

core/src/test/java/com/flowci/core/test/flow/FlowControllerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.flowci.core.common.domain.http.ResponseMessage;
2121
import com.flowci.core.flow.domain.Flow;
2222
import com.flowci.core.flow.domain.Yml;
23+
import com.flowci.core.test.MockLoggedInScenario;
2324
import com.flowci.core.test.MockMvcHelper;
2425
import com.flowci.core.test.SpringScenario;
2526
import com.flowci.core.user.domain.User;
@@ -43,7 +44,7 @@
4344
/**
4445
* @author yang
4546
*/
46-
public class FlowControllerTest extends SpringScenario {
47+
public class FlowControllerTest extends MockLoggedInScenario {
4748

4849
@Autowired
4950
private FlowMockHelper flowMockHelper;
@@ -55,7 +56,6 @@ public class FlowControllerTest extends SpringScenario {
5556

5657
@Before
5758
public void createFlowWithYml() throws Exception {
58-
mockLogin();
5959
String yml = StringHelper.toString(load("flow.yml"));
6060
flowMockHelper.create(flowName, yml);
6161
}

0 commit comments

Comments
 (0)