Skip to content

Commit d14a4a1

Browse files
docs(regen): update sample code to set total timeout, add API client header test (#100)
1 parent 0671b23 commit d14a4a1

File tree

6 files changed

+204
-15
lines changed

6 files changed

+204
-15
lines changed

google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/FirestoreAdminSettings.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,12 @@
7070
* <code>
7171
* FirestoreAdminSettings.Builder firestoreAdminSettingsBuilder =
7272
* FirestoreAdminSettings.newBuilder();
73-
* firestoreAdminSettingsBuilder.createIndexSettings().getRetrySettings().toBuilder()
74-
* .setTotalTimeout(Duration.ofSeconds(30));
73+
* firestoreAdminSettingsBuilder
74+
* .createIndexSettings()
75+
* .setRetrySettings(
76+
* firestoreAdminSettingsBuilder.createIndexSettings().getRetrySettings().toBuilder()
77+
* .setTotalTimeout(Duration.ofSeconds(30))
78+
* .build());
7579
* FirestoreAdminSettings firestoreAdminSettings = firestoreAdminSettingsBuilder.build();
7680
* </code>
7781
* </pre>

google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/FirestoreSettings.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,12 @@
8080
* <code>
8181
* FirestoreSettings.Builder firestoreSettingsBuilder =
8282
* FirestoreSettings.newBuilder();
83-
* firestoreSettingsBuilder.updateDocumentSettings().getRetrySettings().toBuilder()
84-
* .setTotalTimeout(Duration.ofSeconds(30));
83+
* firestoreSettingsBuilder
84+
* .updateDocumentSettings()
85+
* .setRetrySettings(
86+
* firestoreSettingsBuilder.updateDocumentSettings().getRetrySettings().toBuilder()
87+
* .setTotalTimeout(Duration.ofSeconds(30))
88+
* .build());
8589
* FirestoreSettings firestoreSettings = firestoreSettingsBuilder.build();
8690
* </code>
8791
* </pre>

google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreAdminStubSettings.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,12 @@
8585
* <code>
8686
* FirestoreAdminStubSettings.Builder firestoreAdminSettingsBuilder =
8787
* FirestoreAdminStubSettings.newBuilder();
88-
* firestoreAdminSettingsBuilder.createIndexSettings().getRetrySettings().toBuilder()
89-
* .setTotalTimeout(Duration.ofSeconds(30));
88+
* firestoreAdminSettingsBuilder
89+
* .createIndexSettings()
90+
* .setRetrySettings(
91+
* firestoreAdminSettingsBuilder.createIndexSettings().getRetrySettings().toBuilder()
92+
* .setTotalTimeout(Duration.ofSeconds(30))
93+
* .build());
9094
* FirestoreAdminStubSettings firestoreAdminSettings = firestoreAdminSettingsBuilder.build();
9195
* </code>
9296
* </pre>

google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1/stub/FirestoreStubSettings.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,12 @@
9595
* <code>
9696
* FirestoreStubSettings.Builder firestoreSettingsBuilder =
9797
* FirestoreStubSettings.newBuilder();
98-
* firestoreSettingsBuilder.updateDocumentSettings().getRetrySettings().toBuilder()
99-
* .setTotalTimeout(Duration.ofSeconds(30));
98+
* firestoreSettingsBuilder
99+
* .updateDocumentSettings()
100+
* .setRetrySettings(
101+
* firestoreSettingsBuilder.updateDocumentSettings().getRetrySettings().toBuilder()
102+
* .setTotalTimeout(Duration.ofSeconds(30))
103+
* .build());
100104
* FirestoreStubSettings firestoreSettings = firestoreSettingsBuilder.build();
101105
* </code>
102106
* </pre>

google-cloud-firestore/src/test/java/com/google/cloud/firestore/v1/FirestoreClientTest.java

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.google.cloud.firestore.v1;
1717

1818
import static com.google.cloud.firestore.v1.FirestoreClient.ListCollectionIdsPagedResponse;
19+
import static com.google.cloud.firestore.v1.FirestoreClient.ListDocumentsPagedResponse;
1920

2021
import com.google.api.gax.core.NoCredentialsProvider;
2122
import com.google.api.gax.grpc.GaxGrpcProperties;
@@ -37,12 +38,16 @@
3738
import com.google.firestore.v1.BeginTransactionResponse;
3839
import com.google.firestore.v1.CommitRequest;
3940
import com.google.firestore.v1.CommitResponse;
41+
import com.google.firestore.v1.CreateDocumentRequest;
4042
import com.google.firestore.v1.DatabaseRootName;
4143
import com.google.firestore.v1.DeleteDocumentRequest;
4244
import com.google.firestore.v1.Document;
4345
import com.google.firestore.v1.DocumentMask;
46+
import com.google.firestore.v1.GetDocumentRequest;
4447
import com.google.firestore.v1.ListCollectionIdsRequest;
4548
import com.google.firestore.v1.ListCollectionIdsResponse;
49+
import com.google.firestore.v1.ListDocumentsRequest;
50+
import com.google.firestore.v1.ListDocumentsResponse;
4651
import com.google.firestore.v1.ListenRequest;
4752
import com.google.firestore.v1.ListenResponse;
4853
import com.google.firestore.v1.RollbackRequest;
@@ -108,6 +113,174 @@ public void tearDown() throws Exception {
108113
client.close();
109114
}
110115

116+
@Test
117+
@SuppressWarnings("all")
118+
public void getDocumentTest() {
119+
String name2 = "name2-1052831874";
120+
Document expectedResponse = Document.newBuilder().setName(name2).build();
121+
mockFirestore.addResponse(expectedResponse);
122+
123+
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
124+
GetDocumentRequest request = GetDocumentRequest.newBuilder().setName(name.toString()).build();
125+
126+
Document actualResponse = client.getDocument(request);
127+
Assert.assertEquals(expectedResponse, actualResponse);
128+
129+
List<AbstractMessage> actualRequests = mockFirestore.getRequests();
130+
Assert.assertEquals(1, actualRequests.size());
131+
GetDocumentRequest actualRequest = (GetDocumentRequest) actualRequests.get(0);
132+
133+
Assert.assertEquals(name, AnyPathName.parse(actualRequest.getName()));
134+
Assert.assertTrue(
135+
channelProvider.isHeaderSent(
136+
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
137+
GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
138+
}
139+
140+
@Test
141+
@SuppressWarnings("all")
142+
public void getDocumentExceptionTest() throws Exception {
143+
StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
144+
mockFirestore.addException(exception);
145+
146+
try {
147+
AnyPathName name = AnyPathName.of("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
148+
GetDocumentRequest request = GetDocumentRequest.newBuilder().setName(name.toString()).build();
149+
150+
client.getDocument(request);
151+
Assert.fail("No exception raised");
152+
} catch (InvalidArgumentException e) {
153+
// Expected exception
154+
}
155+
}
156+
157+
@Test
158+
@SuppressWarnings("all")
159+
public void listDocumentsTest() {
160+
String nextPageToken = "";
161+
Document documentsElement = Document.newBuilder().build();
162+
List<Document> documents = Arrays.asList(documentsElement);
163+
ListDocumentsResponse expectedResponse =
164+
ListDocumentsResponse.newBuilder()
165+
.setNextPageToken(nextPageToken)
166+
.addAllDocuments(documents)
167+
.build();
168+
mockFirestore.addResponse(expectedResponse);
169+
170+
String formattedParent =
171+
AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
172+
String collectionId = "collectionId-821242276";
173+
ListDocumentsRequest request =
174+
ListDocumentsRequest.newBuilder()
175+
.setParent(formattedParent)
176+
.setCollectionId(collectionId)
177+
.build();
178+
179+
ListDocumentsPagedResponse pagedListResponse = client.listDocuments(request);
180+
181+
List<Document> resources = Lists.newArrayList(pagedListResponse.iterateAll());
182+
Assert.assertEquals(1, resources.size());
183+
Assert.assertEquals(expectedResponse.getDocumentsList().get(0), resources.get(0));
184+
185+
List<AbstractMessage> actualRequests = mockFirestore.getRequests();
186+
Assert.assertEquals(1, actualRequests.size());
187+
ListDocumentsRequest actualRequest = (ListDocumentsRequest) actualRequests.get(0);
188+
189+
Assert.assertEquals(formattedParent, actualRequest.getParent());
190+
Assert.assertEquals(collectionId, actualRequest.getCollectionId());
191+
Assert.assertTrue(
192+
channelProvider.isHeaderSent(
193+
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
194+
GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
195+
}
196+
197+
@Test
198+
@SuppressWarnings("all")
199+
public void listDocumentsExceptionTest() throws Exception {
200+
StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
201+
mockFirestore.addException(exception);
202+
203+
try {
204+
String formattedParent =
205+
AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
206+
String collectionId = "collectionId-821242276";
207+
ListDocumentsRequest request =
208+
ListDocumentsRequest.newBuilder()
209+
.setParent(formattedParent)
210+
.setCollectionId(collectionId)
211+
.build();
212+
213+
client.listDocuments(request);
214+
Assert.fail("No exception raised");
215+
} catch (InvalidArgumentException e) {
216+
// Expected exception
217+
}
218+
}
219+
220+
@Test
221+
@SuppressWarnings("all")
222+
public void createDocumentTest() {
223+
String name = "name3373707";
224+
Document expectedResponse = Document.newBuilder().setName(name).build();
225+
mockFirestore.addResponse(expectedResponse);
226+
227+
String formattedParent =
228+
AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
229+
String collectionId = "collectionId-821242276";
230+
String documentId = "documentId506676927";
231+
Document document = Document.newBuilder().build();
232+
CreateDocumentRequest request =
233+
CreateDocumentRequest.newBuilder()
234+
.setParent(formattedParent)
235+
.setCollectionId(collectionId)
236+
.setDocumentId(documentId)
237+
.setDocument(document)
238+
.build();
239+
240+
Document actualResponse = client.createDocument(request);
241+
Assert.assertEquals(expectedResponse, actualResponse);
242+
243+
List<AbstractMessage> actualRequests = mockFirestore.getRequests();
244+
Assert.assertEquals(1, actualRequests.size());
245+
CreateDocumentRequest actualRequest = (CreateDocumentRequest) actualRequests.get(0);
246+
247+
Assert.assertEquals(formattedParent, actualRequest.getParent());
248+
Assert.assertEquals(collectionId, actualRequest.getCollectionId());
249+
Assert.assertEquals(documentId, actualRequest.getDocumentId());
250+
Assert.assertEquals(document, actualRequest.getDocument());
251+
Assert.assertTrue(
252+
channelProvider.isHeaderSent(
253+
ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
254+
GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
255+
}
256+
257+
@Test
258+
@SuppressWarnings("all")
259+
public void createDocumentExceptionTest() throws Exception {
260+
StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
261+
mockFirestore.addException(exception);
262+
263+
try {
264+
String formattedParent =
265+
AnyPathName.format("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");
266+
String collectionId = "collectionId-821242276";
267+
String documentId = "documentId506676927";
268+
Document document = Document.newBuilder().build();
269+
CreateDocumentRequest request =
270+
CreateDocumentRequest.newBuilder()
271+
.setParent(formattedParent)
272+
.setCollectionId(collectionId)
273+
.setDocumentId(documentId)
274+
.setDocument(document)
275+
.build();
276+
277+
client.createDocument(request);
278+
Assert.fail("No exception raised");
279+
} catch (InvalidArgumentException e) {
280+
// Expected exception
281+
}
282+
}
283+
111284
@Test
112285
@SuppressWarnings("all")
113286
public void updateDocumentTest() {

synth.metadata

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
{
2-
"updateTime": "2020-02-01T08:49:56.615505Z",
2+
"updateTime": "2020-02-08T09:53:03.190760Z",
33
"sources": [
44
{
55
"generator": {
66
"name": "artman",
7-
"version": "0.44.4",
8-
"dockerImage": "googleapis/artman@sha256:19e945954fc960a4bdfee6cb34695898ab21a8cf0bac063ee39b91f00a1faec8"
7+
"version": "0.45.0",
8+
"dockerImage": "googleapis/artman@sha256:6aec9c34db0e4be221cdaf6faba27bdc07cfea846808b3d3b964dfce3a9a0f9b"
99
}
1010
},
1111
{
1212
"git": {
1313
"name": "googleapis",
1414
"remote": "https://github.com/googleapis/googleapis.git",
15-
"sha": "b5cbe4a4ba64ab19e6627573ff52057a1657773d",
16-
"internalRef": "292647187",
17-
"log": "b5cbe4a4ba64ab19e6627573ff52057a1657773d\nSecurityCenter v1p1beta1: move file-level option on top to workaround protobuf.js bug.\n\nPiperOrigin-RevId: 292647187\n\nb224b317bf20c6a4fbc5030b4a969c3147f27ad3\nAdds API definitions for bigqueryreservation v1beta1.\n\nPiperOrigin-RevId: 292634722\n\nc1468702f9b17e20dd59007c0804a089b83197d2\nSynchronize new proto/yaml changes.\n\nPiperOrigin-RevId: 292626173\n\nffdfa4f55ab2f0afc11d0eb68f125ccbd5e404bd\nvision: v1p3beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292605599\n\n78f61482cd028fc1d9892aa5d89d768666a954cd\nvision: v1p1beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292605125\n\n60bb5a294a604fd1778c7ec87b265d13a7106171\nvision: v1p2beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292604980\n\n3bcf7aa79d45eb9ec29ab9036e9359ea325a7fc3\nvision: v1p4beta1 publish annotations and retry config\n\nPiperOrigin-RevId: 292604656\n\n2717b8a1c762b26911b45ecc2e4ee01d98401b28\nFix dataproc artman client library generation.\n\nPiperOrigin-RevId: 292555664\n\n"
15+
"sha": "e7d8a694f4559201e6913f6610069cb08b39274e",
16+
"internalRef": "293903652",
17+
"log": "e7d8a694f4559201e6913f6610069cb08b39274e\nDepend on the latest gapic-generator and resource names plugin.\n\nThis fixes the very old an very annoying bug: https://github.com/googleapis/gapic-generator/pull/3087\n\nPiperOrigin-RevId: 293903652\n\n806b2854a966d55374ee26bb0cef4e30eda17b58\nfix: correct capitalization of Ruby namespaces in SecurityCenter V1p1beta1\n\nPiperOrigin-RevId: 293903613\n\n1b83c92462b14d67a7644e2980f723112472e03a\nPublish annotations and grpc service config for Logging API.\n\nPiperOrigin-RevId: 293893514\n\ne46f761cd6ec15a9e3d5ed4ff321a4bcba8e8585\nGenerate the Bazel build file for recommendengine public api\n\nPiperOrigin-RevId: 293710856\n\n68477017c4173c98addac0373950c6aa9d7b375f\nMake `language_code` optional for UpdateIntentRequest and BatchUpdateIntentsRequest.\n\nThe comments and proto annotations describe this parameter as optional.\n\nPiperOrigin-RevId: 293703548\n\n16f823f578bca4e845a19b88bb9bc5870ea71ab2\nAdd BUILD.bazel files for managedidentities API\n\nPiperOrigin-RevId: 293698246\n\n2f53fd8178c9a9de4ad10fae8dd17a7ba36133f2\nAdd v1p1beta1 config file\n\nPiperOrigin-RevId: 293696729\n\n052b274138fce2be80f97b6dcb83ab343c7c8812\nAdd source field for user event and add field behavior annotations\n\nPiperOrigin-RevId: 293693115\n\n1e89732b2d69151b1b3418fff3d4cc0434f0dded\ndatacatalog: v1beta1 add three new RPCs to gapic v1beta1 config\n\nPiperOrigin-RevId: 293692823\n\n9c8bd09bbdc7c4160a44f1fbab279b73cd7a2337\nchange the name of AccessApproval service to AccessApprovalAdmin\n\nPiperOrigin-RevId: 293690934\n\n2e23b8fbc45f5d9e200572ca662fe1271bcd6760\nAdd ListEntryGroups method, add http bindings to support entry group tagging, and update some comments.\n\nPiperOrigin-RevId: 293666452\n\n0275e38a4ca03a13d3f47a9613aac8c8b0d3f1f2\nAdd proto_package field to managedidentities API. It is needed for APIs that still depend on artman generation.\n\nPiperOrigin-RevId: 293643323\n\n4cdfe8278cb6f308106580d70648001c9146e759\nRegenerating public protos for Data Catalog to add new Custom Type Entry feature.\n\nPiperOrigin-RevId: 293614782\n\n45d2a569ab526a1fad3720f95eefb1c7330eaada\nEnable client generation for v1 ManagedIdentities API.\n\nPiperOrigin-RevId: 293515675\n\n2c17086b77e6f3bcf04a1f65758dfb0c3da1568f\nAdd the Actions on Google common types (//google/actions/type/*).\n\nPiperOrigin-RevId: 293478245\n\n781aadb932e64a12fb6ead7cd842698d99588433\nDialogflow weekly v2/v2beta1 library update:\n- Documentation updates\nImportant updates are also posted at\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 293443396\n\ne2602608c9138c2fca24162720e67f9307c30b95\nDialogflow weekly v2/v2beta1 library update:\n- Documentation updates\nImportant updates are also posted at\nhttps://cloud.google.com/dialogflow/docs/release-notes\n\nPiperOrigin-RevId: 293442964\n\nc8aef82028d06b7992278fa9294c18570dc86c3d\nAdd cc_proto_library and cc_grpc_library targets for Bigtable protos.\n\nAlso fix indentation of cc_grpc_library targets in Spanner and IAM protos.\n\nPiperOrigin-RevId: 293440538\n\ne2faab04f4cb7f9755072330866689b1943a16e9\ncloudtasks: v2 replace non-standard retry params in gapic config v2\n\nPiperOrigin-RevId: 293424055\n\ndfb4097ea628a8470292c6590a4313aee0c675bd\nerrorreporting: v1beta1 add legacy artman config for php\n\nPiperOrigin-RevId: 293423790\n\nb18aed55b45bfe5b62476292c72759e6c3e573c6\nasset: v1p1beta1 updated comment for `page_size` limit.\n\nPiperOrigin-RevId: 293421386\n\nc9ef36b7956d9859a2fc86ad35fcaa16958ab44f\nbazel: Refactor CI build scripts\n\nPiperOrigin-RevId: 293387911\n\na8ed9d921fdddc61d8467bfd7c1668f0ad90435c\nfix: set Ruby module name for OrgPolicy\n\nPiperOrigin-RevId: 293257997\n\n6c7d28509bd8315de8af0889688ee20099594269\nredis: v1beta1 add UpgradeInstance and connect_mode field to Instance\n\nPiperOrigin-RevId: 293242878\n\nae0abed4fcb4c21f5cb67a82349a049524c4ef68\nredis: v1 add connect_mode field to Instance\n\nPiperOrigin-RevId: 293241914\n\n3f7a0d29b28ee9365771da2b66edf7fa2b4e9c56\nAdds service config definition for bigqueryreservation v1beta1\n\nPiperOrigin-RevId: 293234418\n\n0c88168d5ed6fe353a8cf8cbdc6bf084f6bb66a5\naddition of BUILD & configuration for accessapproval v1\n\nPiperOrigin-RevId: 293219198\n\n39bedc2e30f4778ce81193f6ba1fec56107bcfc4\naccessapproval: v1 publish protos\n\nPiperOrigin-RevId: 293167048\n\n69d9945330a5721cd679f17331a78850e2618226\nAdd file-level `Session` resource definition\n\nPiperOrigin-RevId: 293080182\n\nf6a1a6b417f39694275ca286110bc3c1ca4db0dc\nAdd file-level `Session` resource definition\n\nPiperOrigin-RevId: 293080178\n\n29d40b78e3dc1579b0b209463fbcb76e5767f72a\nExpose managedidentities/v1beta1/ API for client library usage.\n\nPiperOrigin-RevId: 292979741\n\na22129a1fb6e18056d576dfb7717aef74b63734a\nExpose managedidentities/v1/ API for client library usage.\n\nPiperOrigin-RevId: 292968186\n\n"
1818
}
1919
},
2020
{
2121
"template": {
2222
"name": "java_library",
2323
"origin": "synthtool.gcp",
24-
"version": "2019.10.17"
24+
"version": "2020.2.4"
2525
}
2626
}
2727
],

0 commit comments

Comments
 (0)