Skip to content

Commit f1bd09e

Browse files
authored
test(bigtable): fix JSpecify CI issues on Java 8 (#13809)
Disable annotations in Mockito mocks for Gax callables and providers to avoid ArrayStoreException on Java 8 when reflecting on JSpecify annotations.
1 parent c5e6bb7 commit f1bd09e

4 files changed

Lines changed: 130 additions & 63 deletions

File tree

java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTests.java

Lines changed: 59 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
import org.junit.runner.RunWith;
8989
import org.junit.runners.JUnit4;
9090
import org.mockito.ArgumentMatchers;
91-
import org.mockito.Mock;
9291
import org.mockito.Mockito;
9392
import org.mockito.invocation.InvocationOnMock;
9493
import org.mockito.junit.MockitoJUnit;
@@ -143,168 +142,139 @@ public class BigtableInstanceAdminClientTests {
143142

144143
private BigtableInstanceAdminStub mockStub;
145144

146-
@Mock
147145
private OperationCallable<
148146
com.google.bigtable.admin.v2.CreateInstanceRequest,
149147
com.google.bigtable.admin.v2.Instance,
150148
CreateInstanceMetadata>
151149
mockCreateInstanceCallable;
152150

153-
@Mock
154151
private OperationCallable<
155152
com.google.bigtable.admin.v2.PartialUpdateInstanceRequest,
156153
com.google.bigtable.admin.v2.Instance,
157154
UpdateInstanceMetadata>
158155
mockUpdateInstanceCallable;
159156

160-
@Mock
161157
private UnaryCallable<
162158
com.google.bigtable.admin.v2.GetInstanceRequest, com.google.bigtable.admin.v2.Instance>
163159
mockGetInstanceCallable;
164160

165-
@Mock
166161
private UnaryCallable<
167162
com.google.bigtable.admin.v2.ListInstancesRequest,
168163
com.google.bigtable.admin.v2.ListInstancesResponse>
169164
mockListInstancesCallable;
170165

171-
@Mock
172166
private UnaryCallable<com.google.bigtable.admin.v2.DeleteInstanceRequest, Empty>
173167
mockDeleteInstanceCallable;
174168

175-
@Mock
176169
private OperationCallable<
177170
com.google.bigtable.admin.v2.CreateClusterRequest,
178171
com.google.bigtable.admin.v2.Cluster,
179172
com.google.bigtable.admin.v2.CreateClusterMetadata>
180173
mockCreateClusterCallable;
181174

182-
@Mock
183175
private UnaryCallable<
184176
com.google.bigtable.admin.v2.GetClusterRequest, com.google.bigtable.admin.v2.Cluster>
185177
mockGetClusterCallable;
186178

187-
@Mock
188179
private UnaryCallable<
189180
com.google.bigtable.admin.v2.ListClustersRequest,
190181
com.google.bigtable.admin.v2.ListClustersResponse>
191182
mockListClustersCallable;
192183

193-
@Mock
194184
private OperationCallable<
195185
com.google.bigtable.admin.v2.Cluster,
196186
com.google.bigtable.admin.v2.Cluster,
197187
UpdateClusterMetadata>
198188
mockUpdateClusterCallable;
199189

200-
@Mock
201190
private OperationCallable<
202191
PartialUpdateClusterRequest,
203192
com.google.bigtable.admin.v2.Cluster,
204193
PartialUpdateClusterMetadata>
205194
mockPartialUpdateClusterCallable;
206195

207-
@Mock
208196
private UnaryCallable<com.google.bigtable.admin.v2.DeleteClusterRequest, Empty>
209197
mockDeleteClusterCallable;
210198

211-
@Mock
212199
private UnaryCallable<
213200
com.google.bigtable.admin.v2.CreateAppProfileRequest,
214201
com.google.bigtable.admin.v2.AppProfile>
215202
mockCreateAppProfileCallable;
216203

217-
@Mock
218204
private UnaryCallable<
219205
com.google.bigtable.admin.v2.GetAppProfileRequest,
220206
com.google.bigtable.admin.v2.AppProfile>
221207
mockGetAppProfileCallable;
222208

223-
@Mock
224209
private UnaryCallable<
225210
com.google.bigtable.admin.v2.ListAppProfilesRequest, ListAppProfilesPagedResponse>
226211
mockListAppProfilesCallable;
227212

228-
@Mock
229213
private OperationCallable<
230214
com.google.bigtable.admin.v2.UpdateAppProfileRequest,
231215
com.google.bigtable.admin.v2.AppProfile,
232216
com.google.bigtable.admin.v2.UpdateAppProfileMetadata>
233217
mockUpdateAppProfileCallable;
234218

235-
@Mock
236219
private UnaryCallable<com.google.bigtable.admin.v2.DeleteAppProfileRequest, Empty>
237220
mockDeleteAppProfileCallable;
238221

239-
@Mock
240222
private UnaryCallable<com.google.iam.v1.GetIamPolicyRequest, com.google.iam.v1.Policy>
241223
mockGetIamPolicyCallable;
242224

243-
@Mock
244225
private UnaryCallable<com.google.iam.v1.SetIamPolicyRequest, com.google.iam.v1.Policy>
245226
mockSetIamPolicyCallable;
246227

247-
@Mock
248228
private UnaryCallable<
249229
com.google.iam.v1.TestIamPermissionsRequest, com.google.iam.v1.TestIamPermissionsResponse>
250230
mockTestIamPermissionsCallable;
251231

252-
@Mock
253232
private OperationCallable<
254233
com.google.bigtable.admin.v2.CreateMaterializedViewRequest,
255234
com.google.bigtable.admin.v2.MaterializedView,
256235
com.google.bigtable.admin.v2.CreateMaterializedViewMetadata>
257236
mockCreateMaterializedViewCallable;
258237

259-
@Mock
260238
private UnaryCallable<
261239
com.google.bigtable.admin.v2.GetMaterializedViewRequest,
262240
com.google.bigtable.admin.v2.MaterializedView>
263241
mockGetMaterializedViewCallable;
264242

265-
@Mock
266243
private UnaryCallable<
267244
com.google.bigtable.admin.v2.ListMaterializedViewsRequest,
268245
ListMaterializedViewsPagedResponse>
269246
mockListMaterializedViewsCallable;
270247

271-
@Mock
272248
private OperationCallable<
273249
com.google.bigtable.admin.v2.UpdateMaterializedViewRequest,
274250
com.google.bigtable.admin.v2.MaterializedView,
275251
com.google.bigtable.admin.v2.UpdateMaterializedViewMetadata>
276252
mockUpdateMaterializedViewCallable;
277253

278-
@Mock
279254
private UnaryCallable<com.google.bigtable.admin.v2.DeleteMaterializedViewRequest, Empty>
280255
mockDeleteMaterializedViewCallable;
281256

282-
@Mock
283257
private OperationCallable<
284258
com.google.bigtable.admin.v2.CreateLogicalViewRequest,
285259
com.google.bigtable.admin.v2.LogicalView,
286260
com.google.bigtable.admin.v2.CreateLogicalViewMetadata>
287261
mockCreateLogicalViewCallable;
288262

289-
@Mock
290263
private UnaryCallable<
291264
com.google.bigtable.admin.v2.GetLogicalViewRequest,
292265
com.google.bigtable.admin.v2.LogicalView>
293266
mockGetLogicalViewCallable;
294267

295-
@Mock
296268
private UnaryCallable<
297269
com.google.bigtable.admin.v2.ListLogicalViewsRequest, ListLogicalViewsPagedResponse>
298270
mockListLogicalViewsCallable;
299271

300-
@Mock
301272
private OperationCallable<
302273
com.google.bigtable.admin.v2.UpdateLogicalViewRequest,
303274
com.google.bigtable.admin.v2.LogicalView,
304275
com.google.bigtable.admin.v2.UpdateLogicalViewMetadata>
305276
mockUpdateLogicalViewCallable;
306277

307-
@Mock
308278
private UnaryCallable<com.google.bigtable.admin.v2.DeleteLogicalViewRequest, Empty>
309279
mockDeleteLogicalViewCallable;
310280

@@ -313,6 +283,65 @@ public void setUp() {
313283
mockStub =
314284
Mockito.mock(BigtableInstanceAdminStub.class, Mockito.withSettings().withoutAnnotations());
315285
adminClient = BigtableInstanceAdminClient.create(PROJECT_ID, mockStub);
286+
287+
mockCreateInstanceCallable =
288+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
289+
mockUpdateInstanceCallable =
290+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
291+
mockGetInstanceCallable =
292+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
293+
mockListInstancesCallable =
294+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
295+
mockDeleteInstanceCallable =
296+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
297+
mockCreateClusterCallable =
298+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
299+
mockGetClusterCallable =
300+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
301+
mockListClustersCallable =
302+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
303+
mockUpdateClusterCallable =
304+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
305+
mockPartialUpdateClusterCallable =
306+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
307+
mockDeleteClusterCallable =
308+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
309+
mockCreateAppProfileCallable =
310+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
311+
mockGetAppProfileCallable =
312+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
313+
mockListAppProfilesCallable =
314+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
315+
mockUpdateAppProfileCallable =
316+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
317+
mockDeleteAppProfileCallable =
318+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
319+
mockGetIamPolicyCallable =
320+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
321+
mockSetIamPolicyCallable =
322+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
323+
mockTestIamPermissionsCallable =
324+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
325+
mockCreateMaterializedViewCallable =
326+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
327+
mockGetMaterializedViewCallable =
328+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
329+
mockListMaterializedViewsCallable =
330+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
331+
mockUpdateMaterializedViewCallable =
332+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
333+
mockDeleteMaterializedViewCallable =
334+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
335+
mockCreateLogicalViewCallable =
336+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
337+
mockGetLogicalViewCallable =
338+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
339+
mockListLogicalViewsCallable =
340+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
341+
mockUpdateLogicalViewCallable =
342+
Mockito.mock(OperationCallable.class, Mockito.withSettings().withoutAnnotations());
343+
mockDeleteLogicalViewCallable =
344+
Mockito.mock(UnaryCallable.class, Mockito.withSettings().withoutAnnotations());
316345
}
317346

318347
@Test

java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ public void testMissingProjectName() {
6060

6161
@Test
6262
public void testCredentials() throws IOException {
63-
CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class);
63+
CredentialsProvider credentialsProvider =
64+
Mockito.mock(CredentialsProvider.class, Mockito.withSettings().withoutAnnotations());
6465

6566
BigtableInstanceAdminSettings settings =
6667
BigtableInstanceAdminSettings.newBuilder()

0 commit comments

Comments
 (0)