Skip to content

Commit 07fd4a9

Browse files
committed
Add tests and use real fail message & status
1 parent 73a7f1e commit 07fd4a9

2 files changed

Lines changed: 31 additions & 6 deletions

File tree

iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,16 +151,16 @@ public static void verifySuccessWithRedirectionForMultiDevices(
151151
}
152152

153153
public static void verifySuccess(List<TSStatus> statuses) throws BatchExecutionException {
154-
StringBuilder errMsgs =
155-
new StringBuilder().append(TSStatusCode.MULTIPLE_ERROR.getStatusCode()).append(": ");
154+
StringBuilder errMsgs = new StringBuilder();
156155
for (TSStatus status : statuses) {
157156
if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
158157
&& status.getCode() != TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()) {
159158
errMsgs.append(status.getMessage()).append("; ");
160159
}
161160
}
162161
if (errMsgs.length() > 0) {
163-
throw new BatchExecutionException(statuses, errMsgs.toString());
162+
throw new BatchExecutionException(
163+
statuses, TSStatusCode.MULTIPLE_ERROR.getStatusCode() + ": " + errMsgs);
164164
}
165165
}
166166

@@ -181,9 +181,9 @@ public static TSStatus getStatus(List<TSStatus> statusList) {
181181
for (TSStatus subStatus : statusList) {
182182
if (subStatus.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
183183
&& subStatus.getCode() != TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()) {
184-
if (!msgSet.contains(status)) {
185-
errMsg.append(status).append("; ");
186-
msgSet.add(status);
184+
if (!msgSet.contains(subStatus)) {
185+
errMsg.append(subStatus).append("; ");
186+
msgSet.add(subStatus);
187187
}
188188
}
189189
}

iotdb-client/service-rpc/src/test/java/org/apache/iotdb/rpc/RpcUtilsTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@
1919

2020
package org.apache.iotdb.rpc;
2121

22+
import org.apache.iotdb.common.rpc.thrift.TSStatus;
23+
2224
import org.junit.Assert;
2325
import org.junit.Test;
2426

2527
import java.time.ZoneId;
2628
import java.time.format.DateTimeFormatter;
29+
import java.util.Arrays;
30+
import java.util.Collections;
2731

2832
public class RpcUtilsTest {
2933

@@ -74,4 +78,25 @@ public void testIsSetSqlDialect() {
7478
Assert.assertFalse(RpcUtils.isSetSqlDialect("setsql_dialect =table"));
7579
Assert.assertFalse(RpcUtils.isSetSqlDialect("set sql_dia"));
7680
}
81+
82+
@Test
83+
public void testVerifySuccessListAllowsSuccessfulStatuses() throws BatchExecutionException {
84+
RpcUtils.verifySuccess(
85+
Arrays.asList(
86+
RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS),
87+
RpcUtils.getStatus(TSStatusCode.REDIRECTION_RECOMMEND)));
88+
}
89+
90+
@Test
91+
public void testVerifySuccessListThrowsOnFailure() {
92+
TSStatus failedStatus = RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, "failed");
93+
94+
try {
95+
RpcUtils.verifySuccess(Collections.singletonList(failedStatus));
96+
Assert.fail("Expected BatchExecutionException");
97+
} catch (BatchExecutionException e) {
98+
Assert.assertEquals(Collections.singletonList(failedStatus), e.getStatusList());
99+
Assert.assertTrue(e.getMessage().contains("failed"));
100+
}
101+
}
77102
}

0 commit comments

Comments
 (0)