Skip to content

Commit e62b4d0

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

File tree

4 files changed

+106
-62
lines changed

4 files changed

+106
-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: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
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.List;
812
import java.util.Map;
13+
import java.util.stream.Stream;
914

1015
public class BookiesImplTest extends BaseTest {
16+
protected List<Bookies> bookiesImpl;
17+
18+
@BeforeAll
19+
protected void setup() throws Exception {
20+
super.setup();
21+
bookiesImpl = initBookiesImpl();
22+
}
1123

1224
@ParameterizedTest
13-
@MethodSource("provideBookiesImpl")
25+
@MethodSource("getBookiesImpl")
1426
public void testBookiesList(Bookies bookiesImpl) throws BookkeeperAdminException {
1527
Map<String, String> map = bookiesImpl.bookieList();
1628
Assertions.assertEquals(1, map.size());
@@ -22,34 +34,34 @@ public void testBookiesList(Bookies bookiesImpl) throws BookkeeperAdminException
2234
}
2335

2436
@ParameterizedTest
25-
@MethodSource("provideBookiesImpl")
37+
@MethodSource("getBookiesImpl")
2638
public void testListBookieInfo(Bookies bookiesImpl) throws BookkeeperAdminException {
2739
Map<String, String> info = bookiesImpl.listBookieInfo();
2840
Assertions.assertEquals(2, info.size());
2941
}
3042

3143
@ParameterizedTest
32-
@MethodSource("provideBookiesImpl")
44+
@MethodSource("getBookiesImpl")
3345
public void testLastLogMark(Bookies bookiesImpl) throws BookkeeperAdminException {
3446
LastLogMark lastLogMark = bookiesImpl.lastLogMark();
3547
Assertions.assertEquals(1, lastLogMark.getLogFileIdTxnMap().size());
3648
}
3749

3850
@ParameterizedTest
39-
@MethodSource("provideBookiesImpl")
51+
@MethodSource("getBookiesImpl")
4052
public void testListDiskFile(Bookies bookiesImpl) throws BookkeeperAdminException {
4153
bookiesImpl.listDiskFile();
4254
}
4355

4456
@ParameterizedTest
45-
@MethodSource("provideBookiesImpl")
57+
@MethodSource("getBookiesImpl")
4658
public void testIsInForceGc(Bookies bookiesImpl) throws BookkeeperAdminException {
4759
boolean inForceGc = bookiesImpl.isInForceGc();
4860
Assertions.assertFalse(inForceGc);
4961
}
5062

5163
@ParameterizedTest
52-
@MethodSource("provideBookiesImpl")
64+
@MethodSource("getBookiesImpl")
5365
public void testGcStatus(Bookies bookiesImpl) throws BookkeeperAdminException {
5466
List<GarbageCollectionStatus> statuses = bookiesImpl.gcStatusList();
5567
Assertions.assertEquals(1, statuses.size());
@@ -59,7 +71,7 @@ public void testGcStatus(Bookies bookiesImpl) throws BookkeeperAdminException {
5971
}
6072

6173
@ParameterizedTest
62-
@MethodSource("provideBookiesImpl")
74+
@MethodSource("getBookiesImpl")
6375
public void testBookiesStatus(Bookies bookiesImpl) throws BookkeeperAdminException {
6476
BookieStatus status = bookiesImpl.status();
6577
Assertions.assertTrue(status.isRunning());
@@ -68,25 +80,37 @@ public void testBookiesStatus(Bookies bookiesImpl) throws BookkeeperAdminExcepti
6880
}
6981

7082
@ParameterizedTest
71-
@MethodSource("provideBookiesImpl")
83+
@MethodSource("getBookiesImpl")
7284
public void testIsReadOnly(Bookies bookiesImpl) throws BookkeeperAdminException {
7385
boolean readOnly = bookiesImpl.isReadOnly();
7486
Assertions.assertFalse(readOnly);
7587
}
7688

7789
@ParameterizedTest
78-
@MethodSource("provideBookiesImpl")
90+
@MethodSource("getBookiesImpl")
7991
public void testBookiesIsReady(Bookies bookiesImpl) throws BookkeeperAdminException {
8092
boolean ready = bookiesImpl.isReady();
8193
Assertions.assertTrue(ready);
8294
}
8395

8496
@ParameterizedTest
85-
@MethodSource("provideBookiesImpl")
97+
@MethodSource("getBookiesImpl")
8698
public void testBookiesInfo(Bookies bookiesImpl) throws BookkeeperAdminException {
8799
BookieInfo bookieInfo = bookiesImpl.bookieInfo();
88100
Assertions.assertTrue(bookieInfo.getFreeSpace() > 0);
89101
Assertions.assertTrue(bookieInfo.getTotalSpace() > 0);
90102
}
91103

104+
private List<Bookies> initBookiesImpl() {
105+
List<Bookies> bookies = new ArrayList<>();
106+
for (HttpClientEngine engine : HttpClientEngine.values()) {
107+
Bookies bookie = new BookiesImpl(getTestClient(engine));
108+
bookies.add(bookie);
109+
}
110+
return bookies;
111+
}
112+
113+
private Stream<Arguments> getBookiesImpl() {
114+
return bookiesImpl.stream().map(recovery -> Arguments.arguments(recovery));
115+
}
92116
}
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)