Skip to content

Commit 67f3cfc

Browse files
committed
feat: refactor tests
Signed-off-by: moxiaoying <[email protected]>
1 parent 128055f commit 67f3cfc

File tree

4 files changed

+108
-62
lines changed

4 files changed

+108
-62
lines changed
Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
11
package io.github.protocol.bookkeeper.admin.jdk;
22

3+
import io.github.openfacade.http.HttpClientEngine;
34
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.BeforeAll;
46
import org.junit.jupiter.params.ParameterizedTest;
7+
import org.junit.jupiter.params.provider.Arguments;
58
import org.junit.jupiter.params.provider.MethodSource;
69

10+
import java.util.ArrayList;
711
import java.util.Collections;
12+
import java.util.List;
13+
import java.util.stream.Stream;
814

915
public class AutoRecoveryImplTest extends BaseTest {
16+
private List<AutoRecovery> autoRecoveries;
17+
18+
@BeforeAll
19+
protected void setup() throws Exception {
20+
super.setup();
21+
autoRecoveries = initAutoRecoveries();
22+
}
23+
1024
@ParameterizedTest
11-
@MethodSource("provideAutoRecoveries")
25+
@MethodSource("getAutoRecoveries")
1226
public void testAutoRecoveryStatus(AutoRecoveryImpl autoRecovery) throws BookkeeperAdminException {
1327
AutoRecoveryStatus status = autoRecovery.autoRecoveryStatus();
1428
Assertions.assertNotNull(status);
1529
Assertions.assertTrue(status.isEnabled());
1630
}
1731

1832
@ParameterizedTest
19-
@MethodSource("provideAutoRecoveries")
33+
@MethodSource("getAutoRecoveries")
2034
public void testRecoveryBookie(AutoRecoveryImpl autoRecovery) throws BookkeeperAdminException {
2135
RecoveryBookieReqData reqData = new RecoveryBookieReqData();
2236
reqData.setBookieSrc(Collections.singletonList("localhost:3181"));
@@ -25,7 +39,7 @@ public void testRecoveryBookie(AutoRecoveryImpl autoRecovery) throws BookkeeperA
2539
}
2640

2741
@ParameterizedTest
28-
@MethodSource("provideAutoRecoveries")
42+
@MethodSource("getAutoRecoveries")
2943
public void testRecoveryBookieError(AutoRecoveryImpl autoRecovery) {
3044
RecoveryBookieReqData reqData = new RecoveryBookieReqData();
3145
// bookie src is required
@@ -35,40 +49,54 @@ public void testRecoveryBookieError(AutoRecoveryImpl autoRecovery) {
3549
}
3650

3751
@ParameterizedTest
38-
@MethodSource("provideAutoRecoveries")
52+
@MethodSource("getAutoRecoveries")
3953
public void testListUnderReplicatedLedger(AutoRecoveryImpl autoRecovery) {
4054
ListUnderReplicatedLedgerReqData reqData = new ListUnderReplicatedLedgerReqData();
4155
reqData.setPrintMissingReplica(true);
4256
Assertions.assertThrows(BookkeeperAdminException.class, () -> autoRecovery.listUnderReplicatedLedger(reqData));
4357
}
4458

4559
@ParameterizedTest
46-
@MethodSource("provideAutoRecoveries")
60+
@MethodSource("getAutoRecoveries")
4761
public void testWhoIsAuditor(AutoRecoveryImpl autoRecovery) {
4862
Assertions.assertThrows(BookkeeperAdminException.class, () -> autoRecovery.whoIsAuditor());
4963
}
5064

5165
@ParameterizedTest
52-
@MethodSource("provideAutoRecoveries")
66+
@MethodSource("getAutoRecoveries")
5367
public void testTriggerAudit(AutoRecoveryImpl autoRecovery) {
5468
Assertions.assertThrows(BookkeeperAdminException.class, () -> autoRecovery.triggerAudit());
5569
}
5670

5771
@ParameterizedTest
58-
@MethodSource("provideAutoRecoveries")
72+
@MethodSource("getAutoRecoveries")
5973
public void testLostBookieRecoveryDelayByDefault(AutoRecoveryImpl autoRecovery) {
6074
Assertions.assertThrows(BookkeeperAdminException.class, () -> autoRecovery.lostBookieRecoveryDelay());
6175
}
6276

6377
@ParameterizedTest
64-
@MethodSource("provideAutoRecoveries")
78+
@MethodSource("getAutoRecoveries")
6579
public void testLostBookieRecoveryDelay(AutoRecoveryImpl autoRecovery) throws BookkeeperAdminException {
6680
autoRecovery.lostBookieRecoveryDelay(5);
6781
}
6882

6983
@ParameterizedTest
70-
@MethodSource("provideAutoRecoveries")
84+
@MethodSource("getAutoRecoveries")
7185
public void testDecommission(AutoRecoveryImpl autoRecovery) throws BookkeeperAdminException {
7286
autoRecovery.decommission("localhost:3181");
7387
}
88+
89+
private List<AutoRecovery> initAutoRecoveries() {
90+
List<AutoRecovery> autoRecoveries = new ArrayList<>();
91+
for (HttpClientEngine engine : HttpClientEngine.values()) {
92+
InnerHttpClient innerHttpClient = getTestClient(engine);
93+
AutoRecoveryImpl recovery = new AutoRecoveryImpl(innerHttpClient);
94+
autoRecoveries.add(recovery);
95+
}
96+
return autoRecoveries;
97+
}
98+
99+
private Stream<Arguments> getAutoRecoveries() {
100+
return autoRecoveries.stream().map(recovery -> Arguments.arguments(recovery));
101+
}
74102
}

bookkeeper-admin/src/test/java/io/github/protocol/bookkeeper/admin/jdk/BaseTest.java

Lines changed: 6 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,27 @@
66
import org.junit.jupiter.api.AfterAll;
77
import org.junit.jupiter.api.BeforeAll;
88
import org.junit.jupiter.api.TestInstance;
9-
import org.junit.jupiter.params.provider.Arguments;
10-
11-
import java.util.ArrayList;
12-
import java.util.List;
13-
import java.util.stream.Stream;
149

1510
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
1611
public class BaseTest {
1712
protected final EmbeddedBookkeeperServer server = new EmbeddedBookkeeperServer();
1813

1914
@BeforeAll
20-
public void setup() throws Exception {
15+
protected void setup() throws Exception {
2116
server.start();
2217
}
2318

2419
@AfterAll
25-
public void teardown() throws Exception {
20+
protected void teardown() throws Exception {
2621
server.close();
2722
}
2823

29-
public Stream<Arguments> provideAutoRecoveries() {
30-
List<AutoRecoveryImpl> autoRecoveries = new ArrayList<>();
31-
Configuration conf = new Configuration();
32-
conf.host("localhost");
33-
conf.port(server.getBkWebPort());
34-
for (HttpClientEngine engine : HttpClientEngine.values()) {
35-
conf.engine(engine);
36-
AutoRecoveryImpl recovery = new AutoRecoveryImpl(new InnerHttpClient(conf));
37-
autoRecoveries.add(recovery);
38-
}
39-
return autoRecoveries.stream().map(recovery -> Arguments.arguments(recovery));
40-
}
41-
42-
public Stream<Arguments> provideBookiesImpl() {
43-
List<Bookies> bookies = new ArrayList<>();
44-
Configuration conf = new Configuration();
45-
conf.host("localhost");
46-
conf.port(server.getBkWebPort());
47-
for (HttpClientEngine engine : HttpClientEngine.values()) {
48-
conf.engine(engine);
49-
Bookies bookie = new BookiesImpl(new InnerHttpClient(conf));
50-
bookies.add(bookie);
51-
}
52-
return bookies.stream().map(recovery -> Arguments.arguments(recovery));
53-
}
54-
55-
public Stream<Arguments> provideConfigsImpl() {
56-
List<Configs> configs = new ArrayList<>();
24+
protected InnerHttpClient getTestClient(HttpClientEngine engine) {
5725
Configuration conf = new Configuration();
5826
conf.host("localhost");
5927
conf.port(server.getBkWebPort());
60-
for (HttpClientEngine engine : HttpClientEngine.values()) {
61-
conf.engine(engine);
62-
Configs config = new ConfigsImpl(new InnerHttpClient(conf));
63-
configs.add(config);
64-
}
65-
return configs.stream().map(recovery -> Arguments.arguments(recovery));
28+
conf.engine(engine);
29+
InnerHttpClient innerHttpClient = new InnerHttpClient(conf);
30+
return innerHttpClient;
6631
}
6732
}
Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,30 @@
11
package io.github.protocol.bookkeeper.admin.jdk;
22

3+
import io.github.openfacade.http.HttpClientEngine;
34
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.BeforeAll;
6+
import org.junit.jupiter.api.TestInstance;
47
import org.junit.jupiter.params.ParameterizedTest;
8+
import org.junit.jupiter.params.provider.Arguments;
59
import org.junit.jupiter.params.provider.MethodSource;
610

11+
import java.util.ArrayList;
712
import java.util.List;
813
import java.util.Map;
14+
import java.util.stream.Stream;
915

16+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
1017
public class BookiesImplTest extends BaseTest {
18+
protected List<Bookies> bookiesImpl;
19+
20+
@BeforeAll
21+
protected void setup() throws Exception {
22+
super.setup();
23+
bookiesImpl = initBookiesImpl();
24+
}
1125

1226
@ParameterizedTest
13-
@MethodSource("provideBookiesImpl")
27+
@MethodSource("getBookiesImpl")
1428
public void testBookiesList(Bookies bookiesImpl) throws BookkeeperAdminException {
1529
Map<String, String> map = bookiesImpl.bookieList();
1630
Assertions.assertEquals(1, map.size());
@@ -22,34 +36,34 @@ public void testBookiesList(Bookies bookiesImpl) throws BookkeeperAdminException
2236
}
2337

2438
@ParameterizedTest
25-
@MethodSource("provideBookiesImpl")
39+
@MethodSource("getBookiesImpl")
2640
public void testListBookieInfo(Bookies bookiesImpl) throws BookkeeperAdminException {
2741
Map<String, String> info = bookiesImpl.listBookieInfo();
2842
Assertions.assertEquals(2, info.size());
2943
}
3044

3145
@ParameterizedTest
32-
@MethodSource("provideBookiesImpl")
46+
@MethodSource("getBookiesImpl")
3347
public void testLastLogMark(Bookies bookiesImpl) throws BookkeeperAdminException {
3448
LastLogMark lastLogMark = bookiesImpl.lastLogMark();
3549
Assertions.assertEquals(1, lastLogMark.getLogFileIdTxnMap().size());
3650
}
3751

3852
@ParameterizedTest
39-
@MethodSource("provideBookiesImpl")
53+
@MethodSource("getBookiesImpl")
4054
public void testListDiskFile(Bookies bookiesImpl) throws BookkeeperAdminException {
4155
bookiesImpl.listDiskFile();
4256
}
4357

4458
@ParameterizedTest
45-
@MethodSource("provideBookiesImpl")
59+
@MethodSource("getBookiesImpl")
4660
public void testIsInForceGc(Bookies bookiesImpl) throws BookkeeperAdminException {
4761
boolean inForceGc = bookiesImpl.isInForceGc();
4862
Assertions.assertFalse(inForceGc);
4963
}
5064

5165
@ParameterizedTest
52-
@MethodSource("provideBookiesImpl")
66+
@MethodSource("getBookiesImpl")
5367
public void testGcStatus(Bookies bookiesImpl) throws BookkeeperAdminException {
5468
List<GarbageCollectionStatus> statuses = bookiesImpl.gcStatusList();
5569
Assertions.assertEquals(1, statuses.size());
@@ -59,7 +73,7 @@ public void testGcStatus(Bookies bookiesImpl) throws BookkeeperAdminException {
5973
}
6074

6175
@ParameterizedTest
62-
@MethodSource("provideBookiesImpl")
76+
@MethodSource("getBookiesImpl")
6377
public void testBookiesStatus(Bookies bookiesImpl) throws BookkeeperAdminException {
6478
BookieStatus status = bookiesImpl.status();
6579
Assertions.assertTrue(status.isRunning());
@@ -68,25 +82,37 @@ public void testBookiesStatus(Bookies bookiesImpl) throws BookkeeperAdminExcepti
6882
}
6983

7084
@ParameterizedTest
71-
@MethodSource("provideBookiesImpl")
85+
@MethodSource("getBookiesImpl")
7286
public void testIsReadOnly(Bookies bookiesImpl) throws BookkeeperAdminException {
7387
boolean readOnly = bookiesImpl.isReadOnly();
7488
Assertions.assertFalse(readOnly);
7589
}
7690

7791
@ParameterizedTest
78-
@MethodSource("provideBookiesImpl")
92+
@MethodSource("getBookiesImpl")
7993
public void testBookiesIsReady(Bookies bookiesImpl) throws BookkeeperAdminException {
8094
boolean ready = bookiesImpl.isReady();
8195
Assertions.assertTrue(ready);
8296
}
8397

8498
@ParameterizedTest
85-
@MethodSource("provideBookiesImpl")
99+
@MethodSource("getBookiesImpl")
86100
public void testBookiesInfo(Bookies bookiesImpl) throws BookkeeperAdminException {
87101
BookieInfo bookieInfo = bookiesImpl.bookieInfo();
88102
Assertions.assertTrue(bookieInfo.getFreeSpace() > 0);
89103
Assertions.assertTrue(bookieInfo.getTotalSpace() > 0);
90104
}
91105

106+
private List<Bookies> initBookiesImpl() {
107+
List<Bookies> bookies = new ArrayList<>();
108+
for (HttpClientEngine engine : HttpClientEngine.values()) {
109+
Bookies bookie = new BookiesImpl(getTestClient(engine));
110+
bookies.add(bookie);
111+
}
112+
return bookies;
113+
}
114+
115+
private Stream<Arguments> getBookiesImpl() {
116+
return bookiesImpl.stream().map(recovery -> Arguments.arguments(recovery));
117+
}
92118
}
Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
package io.github.protocol.bookkeeper.admin.jdk;
22

3+
import io.github.openfacade.http.HttpClientEngine;
34
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.BeforeAll;
46
import org.junit.jupiter.params.ParameterizedTest;
7+
import org.junit.jupiter.params.provider.Arguments;
58
import org.junit.jupiter.params.provider.MethodSource;
69

10+
import java.util.ArrayList;
711
import java.util.HashMap;
12+
import java.util.List;
813
import java.util.Map;
14+
import java.util.stream.Stream;
915

1016
public class ConfigsImplTest extends BaseTest {
17+
protected List<Configs> configsImpl;
18+
19+
@BeforeAll
20+
protected void setup() throws Exception {
21+
super.setup();
22+
configsImpl = initConfigsImpl();
23+
}
24+
1125
@ParameterizedTest
12-
@MethodSource("provideConfigsImpl")
26+
@MethodSource("getConfigsImpl")
1327
public void testPutConfig(Configs configsImpl) throws BookkeeperAdminException {
1428
HashMap<String, String> config = new HashMap<>();
1529
config.put("allowEphemeralPorts", "false");
@@ -19,9 +33,22 @@ public void testPutConfig(Configs configsImpl) throws BookkeeperAdminException {
1933
}
2034

2135
@ParameterizedTest
22-
@MethodSource("provideConfigsImpl")
36+
@MethodSource("getConfigsImpl")
2337
public void testGetConfig(Configs configsImpl) throws BookkeeperAdminException {
2438
Map<String, String> config = configsImpl.getConfig();
2539
Assertions.assertTrue(config.size() != 0);
2640
}
41+
42+
private List<Configs> initConfigsImpl() {
43+
List<Configs> configs = new ArrayList<>();
44+
for (HttpClientEngine engine : HttpClientEngine.values()) {
45+
Configs config = new ConfigsImpl(getTestClient(engine));
46+
configs.add(config);
47+
}
48+
return configs;
49+
}
50+
51+
private Stream<Arguments> getConfigsImpl() {
52+
return configsImpl.stream().map(recovery -> Arguments.arguments(recovery));
53+
}
2754
}

0 commit comments

Comments
 (0)