Skip to content

Commit 34cb4f5

Browse files
authored
Fix unhandled exceptions in WorkflowServiceTChannel (#954)
What changed? fix unhandled exceptions in WorkflowServiceTChannel add more test coverage in the whole package Why? unit test coverage How did you test it? unit test
1 parent 705ba69 commit 34cb4f5

File tree

4 files changed

+960
-15
lines changed

4 files changed

+960
-15
lines changed

src/main/java/com/uber/cadence/serviceclient/WorkflowServiceTChannel.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,9 @@ private UpdateDomainResponse updateDomain(UpdateDomainRequest updateRequest) thr
506506
if (result.isSetDomainNotActiveError()) {
507507
throw result.getDomainNotActiveError();
508508
}
509+
if (result.isSetClientVersionNotSupportedError()) {
510+
throw result.getClientVersionNotSupportedError();
511+
}
509512
throw new TException("UpdateDomain failed with unknown error:" + result);
510513
} finally {
511514
if (response != null) {
@@ -551,6 +554,9 @@ private void deprecateDomain(DeprecateDomainRequest deprecateRequest) throws TEx
551554
if (result.isSetDomainNotActiveError()) {
552555
throw result.getDomainNotActiveError();
553556
}
557+
if (result.isSetClientVersionNotSupportedError()) {
558+
throw result.getClientVersionNotSupportedError();
559+
}
554560
throw new TException("DeprecateDomain failed with unknown error:" + result);
555561
} finally {
556562
if (response != null) {
@@ -2102,6 +2108,9 @@ private QueryWorkflowResponse queryWorkflow(QueryWorkflowRequest queryRequest) t
21022108
if (result.isSetQueryFailedError()) {
21032109
throw result.getQueryFailedError();
21042110
}
2111+
if (result.isSetLimitExceededError()) {
2112+
throw result.getLimitExceededError();
2113+
}
21052114
if (result.isSetClientVersionNotSupportedError()) {
21062115
throw result.getClientVersionNotSupportedError();
21072116
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/**
2+
* Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* <p>Modifications copyright (C) 2017 Uber Technologies, Inc.
5+
*
6+
* <p>Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file
7+
* except in compliance with the License. A copy of the License is located at
8+
*
9+
* <p>http://aws.amazon.com/apache2.0
10+
*
11+
* <p>or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
13+
* specific language governing permissions and limitations under the License.
14+
*/
15+
package com.uber.cadence.serviceclient;
16+
17+
import com.uber.cadence.serviceclient.auth.OAuthAuthorizationProvider;
18+
import com.uber.m3.tally.NoopScope;
19+
import com.uber.m3.tally.Scope;
20+
import io.grpc.*;
21+
import java.util.Collections;
22+
import java.util.concurrent.TimeUnit;
23+
import junit.framework.TestCase;
24+
25+
public class ClientOptionsTest extends TestCase {
26+
27+
public void testBuilderWithGRPC() {
28+
ManagedChannel channel =
29+
ManagedChannelBuilder.forAddress("localhost", 8080).usePlaintext().build();
30+
Scope scope = new NoopScope();
31+
ClientOptions options =
32+
ClientOptions.newBuilder()
33+
.setAuthorizationProvider(
34+
new OAuthAuthorizationProvider(
35+
"clientID", "clientSecret", "https://128.1.1.1", null))
36+
.setServiceName("serviceName")
37+
.setClientAppName("clientAppName")
38+
.setGRPCChannel(channel)
39+
.setRpcTimeout(TimeUnit.SECONDS.toMillis(10))
40+
.setRpcLongPollTimeout(TimeUnit.SECONDS.toMillis(10))
41+
.setQueryRpcTimeout(TimeUnit.SECONDS.toMillis(10))
42+
.setListArchivedWorkflowRpcTimeout(TimeUnit.SECONDS.toMillis(10))
43+
.setMetricsScope(scope)
44+
.setTransportHeaders(Collections.singletonMap("transportKey", "value"))
45+
.setHeaders(Collections.singletonMap("key", "value"))
46+
.setIsolationGroup("isolation-group")
47+
.build();
48+
assertEquals("serviceName", options.getServiceName());
49+
assertEquals("clientAppName", options.getClientAppName());
50+
assertEquals(channel, options.getGRPCChannel());
51+
assertEquals(TimeUnit.SECONDS.toMillis(10), options.getRpcTimeoutMillis());
52+
assertEquals(TimeUnit.SECONDS.toMillis(10), options.getRpcLongPollTimeoutMillis());
53+
assertEquals(TimeUnit.SECONDS.toMillis(10), options.getRpcQueryTimeoutMillis());
54+
assertEquals(TimeUnit.SECONDS.toMillis(10), options.getRpcListArchivedWorkflowTimeoutMillis());
55+
assertEquals(scope, options.getMetricsScope());
56+
assertEquals("value", options.getTransportHeaders().get("transportKey"));
57+
assertEquals("value", options.getHeaders().get("key"));
58+
assertEquals("isolation-group", options.getIsolationGroup());
59+
}
60+
}

src/test/java/com/uber/cadence/serviceclient/IWorkflowServiceBaseTest.java

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,218 +27,281 @@ public void testGetOptions() {
2727
}
2828

2929
public void testRegisterDomain() {
30+
assertThrows(UnsupportedOperationException.class, () -> service.RegisterDomain(null));
3031
assertThrows(UnsupportedOperationException.class, () -> service.RegisterDomain(null, null));
3132
}
3233

3334
public void testDescribeDomain() {
35+
assertThrows(UnsupportedOperationException.class, () -> service.DescribeDomain(null));
3436
assertThrows(UnsupportedOperationException.class, () -> service.DescribeDomain(null, null));
3537
}
3638

3739
public void testListDomains() {
40+
assertThrows(UnsupportedOperationException.class, () -> service.ListDomains(null));
3841
assertThrows(UnsupportedOperationException.class, () -> service.ListDomains(null, null));
3942
}
4043

4144
public void testUpdateDomain() {
45+
assertThrows(UnsupportedOperationException.class, () -> service.UpdateDomain(null));
4246
assertThrows(UnsupportedOperationException.class, () -> service.UpdateDomain(null, null));
4347
}
4448

4549
public void testDeprecateDomain() {
50+
assertThrows(UnsupportedOperationException.class, () -> service.DeprecateDomain(null));
4651
assertThrows(UnsupportedOperationException.class, () -> service.DeprecateDomain(null, null));
4752
}
4853

4954
public void testRestartWorkflowExecution() {
55+
assertThrows(UnsupportedOperationException.class, () -> service.RestartWorkflowExecution(null));
5056
assertThrows(
5157
UnsupportedOperationException.class, () -> service.RestartWorkflowExecution(null, null));
5258
}
5359

5460
public void testStartWorkflowExecution() {
61+
assertThrows(UnsupportedOperationException.class, () -> service.StartWorkflowExecution(null));
5562
assertThrows(
5663
UnsupportedOperationException.class, () -> service.StartWorkflowExecution(null, null));
5764
}
5865

5966
public void testStartWorkflowExecutionAsync() {
67+
assertThrows(
68+
UnsupportedOperationException.class, () -> service.StartWorkflowExecutionAsync(null));
6069
assertThrows(
6170
UnsupportedOperationException.class, () -> service.StartWorkflowExecutionAsync(null, null));
6271
}
6372

6473
public void testGetWorkflowExecutionHistory() {
74+
assertThrows(
75+
UnsupportedOperationException.class, () -> service.GetWorkflowExecutionHistory(null));
6576
assertThrows(
6677
UnsupportedOperationException.class, () -> service.GetWorkflowExecutionHistory(null, null));
6778
}
6879

6980
public void testPollForDecisionTask() {
81+
assertThrows(UnsupportedOperationException.class, () -> service.PollForDecisionTask(null));
7082
assertThrows(
7183
UnsupportedOperationException.class, () -> service.PollForDecisionTask(null, null));
7284
}
7385

7486
public void testRespondDecisionTaskCompleted() {
87+
assertThrows(
88+
UnsupportedOperationException.class, () -> service.RespondDecisionTaskCompleted(null));
7589
assertThrows(
7690
UnsupportedOperationException.class,
7791
() -> service.RespondDecisionTaskCompleted(null, null));
7892
}
7993

8094
public void testRespondDecisionTaskFailed() {
95+
assertThrows(
96+
UnsupportedOperationException.class, () -> service.RespondDecisionTaskFailed(null));
8197
assertThrows(
8298
UnsupportedOperationException.class, () -> service.RespondDecisionTaskFailed(null, null));
8399
}
84100

85101
public void testPollForActivityTask() {
102+
assertThrows(UnsupportedOperationException.class, () -> service.PollForActivityTask(null));
86103
assertThrows(
87104
UnsupportedOperationException.class, () -> service.PollForActivityTask(null, null));
88105
}
89106

90107
public void testRecordActivityTaskHeartbeat() {
108+
assertThrows(
109+
UnsupportedOperationException.class, () -> service.RecordActivityTaskHeartbeat(null));
91110
assertThrows(
92111
UnsupportedOperationException.class, () -> service.RecordActivityTaskHeartbeat(null, null));
93112
}
94113

95114
public void testRecordActivityTaskHeartbeatByID() {
115+
assertThrows(
116+
UnsupportedOperationException.class, () -> service.RecordActivityTaskHeartbeatByID(null));
96117
assertThrows(
97118
UnsupportedOperationException.class,
98119
() -> service.RecordActivityTaskHeartbeatByID(null, null));
99120
}
100121

101122
public void testRespondActivityTaskCompleted() {
123+
assertThrows(
124+
UnsupportedOperationException.class, () -> service.RespondActivityTaskCompleted(null));
102125
assertThrows(
103126
UnsupportedOperationException.class,
104127
() -> service.RespondActivityTaskCompleted(null, null));
105128
}
106129

107130
public void testRespondActivityTaskCompletedByID() {
131+
assertThrows(
132+
UnsupportedOperationException.class, () -> service.RespondActivityTaskCompletedByID(null));
108133
assertThrows(
109134
UnsupportedOperationException.class,
110135
() -> service.RespondActivityTaskCompletedByID(null, null));
111136
}
112137

113138
public void testRespondActivityTaskFailed() {
139+
assertThrows(
140+
UnsupportedOperationException.class, () -> service.RespondActivityTaskFailed(null));
114141
assertThrows(
115142
UnsupportedOperationException.class, () -> service.RespondActivityTaskFailed(null, null));
116143
}
117144

118145
public void testRespondActivityTaskFailedByID() {
146+
assertThrows(
147+
UnsupportedOperationException.class, () -> service.RespondActivityTaskFailedByID(null));
119148
assertThrows(
120149
UnsupportedOperationException.class,
121150
() -> service.RespondActivityTaskFailedByID(null, null));
122151
}
123152

124153
public void testRespondActivityTaskCanceled() {
154+
assertThrows(
155+
UnsupportedOperationException.class, () -> service.RespondActivityTaskCanceled(null));
125156
assertThrows(
126157
UnsupportedOperationException.class, () -> service.RespondActivityTaskCanceled(null, null));
127158
}
128159

129160
public void testRespondActivityTaskCanceledByID() {
161+
assertThrows(
162+
UnsupportedOperationException.class, () -> service.RespondActivityTaskCanceledByID(null));
130163
assertThrows(
131164
UnsupportedOperationException.class,
132165
() -> service.RespondActivityTaskCanceledByID(null, null));
133166
}
134167

135168
public void testRequestCancelWorkflowExecution() {
169+
assertThrows(
170+
UnsupportedOperationException.class, () -> service.RequestCancelWorkflowExecution(null));
136171
assertThrows(
137172
UnsupportedOperationException.class,
138173
() -> service.RequestCancelWorkflowExecution(null, null));
139174
}
140175

141176
public void testSignalWorkflowExecution() {
177+
assertThrows(UnsupportedOperationException.class, () -> service.SignalWorkflowExecution(null));
142178
assertThrows(
143179
UnsupportedOperationException.class, () -> service.SignalWorkflowExecution(null, null));
144180
}
145181

146182
public void testSignalWithStartWorkflowExecution() {
183+
assertThrows(
184+
UnsupportedOperationException.class, () -> service.SignalWithStartWorkflowExecution(null));
147185
assertThrows(
148186
UnsupportedOperationException.class,
149187
() -> service.SignalWithStartWorkflowExecution(null, null));
150188
}
151189

152190
public void testSignalWithStartWorkflowExecutionAsync() {
191+
assertThrows(
192+
UnsupportedOperationException.class,
193+
() -> service.SignalWithStartWorkflowExecutionAsync(null));
153194
assertThrows(
154195
UnsupportedOperationException.class,
155196
() -> service.SignalWithStartWorkflowExecutionAsync(null, null));
156197
}
157198

158199
public void testResetWorkflowExecution() {
200+
assertThrows(UnsupportedOperationException.class, () -> service.ResetWorkflowExecution(null));
159201
assertThrows(
160202
UnsupportedOperationException.class, () -> service.ResetWorkflowExecution(null, null));
161203
}
162204

163205
public void testTerminateWorkflowExecution() {
206+
assertThrows(
207+
UnsupportedOperationException.class, () -> service.TerminateWorkflowExecution(null));
164208
assertThrows(
165209
UnsupportedOperationException.class, () -> service.TerminateWorkflowExecution(null, null));
166210
}
167211

168212
public void testListOpenWorkflowExecutions() {
213+
assertThrows(
214+
UnsupportedOperationException.class, () -> service.ListOpenWorkflowExecutions(null));
169215
assertThrows(
170216
UnsupportedOperationException.class, () -> service.ListOpenWorkflowExecutions(null, null));
171217
}
172218

173219
public void testListClosedWorkflowExecutions() {
220+
assertThrows(
221+
UnsupportedOperationException.class, () -> service.ListClosedWorkflowExecutions(null));
174222
assertThrows(
175223
UnsupportedOperationException.class,
176224
() -> service.ListClosedWorkflowExecutions(null, null));
177225
}
178226

179227
public void testListWorkflowExecutions() {
228+
assertThrows(UnsupportedOperationException.class, () -> service.ListWorkflowExecutions(null));
180229
assertThrows(
181230
UnsupportedOperationException.class, () -> service.ListWorkflowExecutions(null, null));
182231
}
183232

184233
public void testListArchivedWorkflowExecutions() {
234+
assertThrows(
235+
UnsupportedOperationException.class, () -> service.ListArchivedWorkflowExecutions(null));
185236
assertThrows(
186237
UnsupportedOperationException.class,
187238
() -> service.ListArchivedWorkflowExecutions(null, null));
188239
}
189240

190241
public void testScanWorkflowExecutions() {
242+
assertThrows(UnsupportedOperationException.class, () -> service.ScanWorkflowExecutions(null));
191243
assertThrows(
192244
UnsupportedOperationException.class, () -> service.ScanWorkflowExecutions(null, null));
193245
}
194246

195247
public void testCountWorkflowExecutions() {
248+
assertThrows(UnsupportedOperationException.class, () -> service.CountWorkflowExecutions(null));
196249
assertThrows(
197250
UnsupportedOperationException.class, () -> service.CountWorkflowExecutions(null, null));
198251
}
199252

200253
public void testGetSearchAttributes() {
201-
assertThrows(UnsupportedOperationException.class, () -> service.GetSearchAttributes(null));
254+
assertThrows(UnsupportedOperationException.class, () -> service.GetSearchAttributes());
202255
}
203256

204257
public void testRespondQueryTaskCompleted() {
258+
assertThrows(
259+
UnsupportedOperationException.class, () -> service.RespondQueryTaskCompleted(null));
205260
assertThrows(
206261
UnsupportedOperationException.class, () -> service.RespondQueryTaskCompleted(null, null));
207262
}
208263

209264
public void testResetStickyTaskList() {
265+
assertThrows(UnsupportedOperationException.class, () -> service.ResetStickyTaskList(null));
210266
assertThrows(
211267
UnsupportedOperationException.class, () -> service.ResetStickyTaskList(null, null));
212268
}
213269

214270
public void testQueryWorkflow() {
271+
assertThrows(UnsupportedOperationException.class, () -> service.QueryWorkflow(null));
215272
assertThrows(UnsupportedOperationException.class, () -> service.QueryWorkflow(null, null));
216273
}
217274

218275
public void testDescribeWorkflowExecution() {
276+
assertThrows(
277+
UnsupportedOperationException.class, () -> service.DescribeWorkflowExecution(null));
219278
assertThrows(
220279
UnsupportedOperationException.class, () -> service.DescribeWorkflowExecution(null, null));
221280
}
222281

223282
public void testDescribeTaskList() {
283+
assertThrows(UnsupportedOperationException.class, () -> service.DescribeTaskList(null));
224284
assertThrows(UnsupportedOperationException.class, () -> service.DescribeTaskList(null, null));
225285
}
226286

227287
public void testGetClusterInfo() {
228-
assertThrows(UnsupportedOperationException.class, () -> service.GetClusterInfo(null));
288+
assertThrows(UnsupportedOperationException.class, () -> service.GetClusterInfo());
229289
}
230290

231291
public void testGetTaskListsByDomain() {
292+
assertThrows(UnsupportedOperationException.class, () -> service.GetTaskListsByDomain(null));
232293
assertThrows(
233294
UnsupportedOperationException.class, () -> service.GetTaskListsByDomain(null, null));
234295
}
235296

236297
public void testListTaskListPartitions() {
298+
assertThrows(UnsupportedOperationException.class, () -> service.ListTaskListPartitions(null));
237299
assertThrows(
238300
UnsupportedOperationException.class, () -> service.ListTaskListPartitions(null, null));
239301
}
240302

241303
public void testRefreshWorkflowTasks() {
304+
assertThrows(UnsupportedOperationException.class, () -> service.RefreshWorkflowTasks(null));
242305
assertThrows(
243306
UnsupportedOperationException.class, () -> service.RefreshWorkflowTasks(null, null));
244307
}

0 commit comments

Comments
 (0)