yixiaoshen commented on code in PR #22052:
URL: https://github.com/apache/beam/pull/22052#discussion_r927903654
##########
sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/datastore/DatastoreV1Test.java:
##########
@@ -146,782 +158,890 @@ public void setUp() {
MetricsEnvironment.setProcessWideContainer(container);
}
- @Test
- public void testBuildRead() throws Exception {
- DatastoreV1.Read read =
-
DatastoreIO.v1().read().withProjectId(PROJECT_ID).withQuery(QUERY).withNamespace(NAMESPACE);
- assertEquals(QUERY, read.getQuery());
- assertEquals(PROJECT_ID, read.getProjectId().get());
- assertEquals(NAMESPACE, read.getNamespace().get());
- }
-
- @Test
- public void testBuildReadWithGqlQuery() throws Exception {
- DatastoreV1.Read read =
- DatastoreIO.v1()
- .read()
- .withProjectId(PROJECT_ID)
- .withLiteralGqlQuery(GQL_QUERY)
- .withNamespace(NAMESPACE);
- assertEquals(GQL_QUERY, read.getLiteralGqlQuery().get());
- assertEquals(PROJECT_ID, read.getProjectId().get());
- assertEquals(NAMESPACE, read.getNamespace().get());
- }
-
- /** {@link #testBuildRead} but constructed in a different order. */
- @Test
- public void testBuildReadAlt() throws Exception {
- DatastoreV1.Read read =
- DatastoreIO.v1()
- .read()
- .withQuery(QUERY)
- .withNamespace(NAMESPACE)
- .withProjectId(PROJECT_ID)
- .withLocalhost(LOCALHOST);
- assertEquals(QUERY, read.getQuery());
- assertEquals(PROJECT_ID, read.getProjectId().get());
- assertEquals(NAMESPACE, read.getNamespace().get());
- assertEquals(LOCALHOST, read.getLocalhost());
- }
-
- @Test
- public void testReadValidationFailsQueryAndGqlQuery() throws Exception {
- DatastoreV1.Read read =
- DatastoreIO.v1()
- .read()
- .withProjectId(PROJECT_ID)
- .withLiteralGqlQuery(GQL_QUERY)
- .withQuery(QUERY);
-
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("withQuery() and withLiteralGqlQuery() are
exclusive");
- read.expand(null);
- }
-
- @Test
- public void testReadValidationFailsQueryLimitZero() throws Exception {
- Query invalidLimit =
Query.newBuilder().setLimit(Int32Value.newBuilder().setValue(0)).build();
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid query limit 0: must be positive");
-
- DatastoreIO.v1().read().withQuery(invalidLimit);
- }
-
- @Test
- public void testReadValidationFailsQueryLimitNegative() throws Exception {
- Query invalidLimit =
Query.newBuilder().setLimit(Int32Value.newBuilder().setValue(-5)).build();
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("Invalid query limit -5: must be positive");
-
- DatastoreIO.v1().read().withQuery(invalidLimit);
- }
-
- @Test
- public void testReadDisplayData() {
- DatastoreV1.Read read =
-
DatastoreIO.v1().read().withProjectId(PROJECT_ID).withQuery(QUERY).withNamespace(NAMESPACE);
+ @RunWith(JUnit4.class)
+ public static class SingletonTests extends DatastoreV1Test {
+ @Test
+ public void testBuildRead() throws Exception {
+ DatastoreV1.Read read =
+ DatastoreIO.v1()
+ .read()
+ .withProjectId(PROJECT_ID)
+ .withQuery(QUERY)
+ .withNamespace(NAMESPACE);
+ assertEquals(QUERY, read.getQuery());
+ assertEquals(PROJECT_ID, read.getProjectId().get());
+ assertEquals(NAMESPACE, read.getNamespace().get());
+ }
- DisplayData displayData = DisplayData.from(read);
+ @Test
+ public void testBuildReadWithReadTime() throws Exception {
+ DatastoreV1.Read read =
+ DatastoreIO.v1()
+ .read()
+ .withProjectId(PROJECT_ID)
+ .withQuery(QUERY)
+ .withReadTime(TIMESTAMP);
Review Comment:
No, the added readTime is optional and does not need to be specified if
customers don't care about read consistency across sub-queries. e.g. just above
this test (testBuildReadWithReadTime) there's another test (testBuildRead) that
builds a RatastoreIO read with exactly the same arguments except that it
doesn't specify readTime.
Also in V1ReadIT test, it does a read without specifying read time, and does
another read with read time, both can work. So customers existing workload
don't need to be changed and it won't break.
--
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]