CRZbulabula commented on code in PR #10988:
URL: https://github.com/apache/iotdb/pull/10988#discussion_r1309614620
##########
integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java:
##########
@@ -242,7 +243,30 @@ public String getTestClassName() {
return "UNKNOWN-IT";
}
- public void testWorking() {
+ private Map<String, Integer> countNodeStatus(Map<Integer, String>
nodeStatus) {
+ Map<String, Integer> result = new HashMap<>();
+ nodeStatus.values().forEach(status -> result.put(status,
result.getOrDefault(status, 0) + 1));
+ return result;
+ }
+
+ private final Predicate<Map<Integer, String>> statusCheckNoUnknown =
+ nodeStatus -> countNodeStatus(nodeStatus).getOrDefault("Unknown", 0) ==
0;
+
+ private final Predicate<Map<Integer, String>>
statusCheckOneUnknownThreeRunning =
+ nodeStatus -> {
+ Map<String, Integer> count = countNodeStatus(nodeStatus);
+ return count.getOrDefault("Unknown", 0) == 1 &&
count.getOrDefault("Running", 0) == 3;
+ };
+
+ public void testWorkingAllFine() {
+ testWorking(statusCheckNoUnknown);
+ }
+
+ public void testWorkingSpecial() {
+ testWorking(statusCheckOneUnknownThreeRunning);
+ }
+
+ private void testWorking(Predicate<Map<Integer, String>> statusCheck) {
Review Comment:
I think the `testWorking` can be made to public now. Therefore we can use
the input `Predicate` to simplify other integration-tests in the future~
##########
integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java:
##########
@@ -242,7 +243,30 @@ public String getTestClassName() {
return "UNKNOWN-IT";
}
- public void testWorking() {
+ private Map<String, Integer> countNodeStatus(Map<Integer, String>
nodeStatus) {
+ Map<String, Integer> result = new HashMap<>();
+ nodeStatus.values().forEach(status -> result.put(status,
result.getOrDefault(status, 0) + 1));
+ return result;
+ }
+
+ private final Predicate<Map<Integer, String>> statusCheckNoUnknown =
+ nodeStatus -> countNodeStatus(nodeStatus).getOrDefault("Unknown", 0) ==
0;
+
+ private final Predicate<Map<Integer, String>>
statusCheckOneUnknownThreeRunning =
+ nodeStatus -> {
+ Map<String, Integer> count = countNodeStatus(nodeStatus);
+ return count.getOrDefault("Unknown", 0) == 1 &&
count.getOrDefault("Running", 0) == 3;
+ };
+
+ public void testWorkingAllFine() {
+ testWorking(statusCheckNoUnknown);
+ }
Review Comment:
It's better to implement a `statusCheckAllRunning` here.
```suggestion
public void testWorkingAllFine() {
testWorking(statusCheckAllRunning);
}
```
Because the NodeStatus might be extended in the future. And we may test
other status like `ReadOnly`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]