ibzib commented on a change in pull request #14648:
URL: https://github.com/apache/beam/pull/14648#discussion_r621623321



##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -120,6 +125,14 @@
 
   @Test
   public void testSQLSelectsPayloadContent() throws Exception {
+
+    // Prepare messages to send later

Review comment:
       Why do we need to "prepare messages to send later"? We only use the 
messages in one place, so I don't see why we need to define messages up front.

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -610,20 +650,31 @@ public void 
testSQLReadAndWriteWithSameFlatTableDefinition() throws Exception {
         objectsProvider.getPayloadFormat() == null
             ? ""
             : String.format(
-                "TBLPROPERTIES '{\"format\": \"%s\"}'", 
objectsProvider.getPayloadFormat());
+                "TBLPROPERTIES " + "'{ " + "%s" + "\"format\": \"%s\"" + "}'",

Review comment:
       Please remove the string concatenations and make this all a single 
string.

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -509,24 +539,32 @@ public void testSQLSelectsPayloadContentFlat() throws 
Exception {
   @Test
   @SuppressWarnings("unchecked")
   public void testSQLInsertRowsToPubsubFlat() throws Exception {
+
+    Matcher<PubsubMessage> person1matcher =

Review comment:
       Nit: why separate these out into variables? They looked fine where they 
were.

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -610,20 +650,31 @@ public void 
testSQLReadAndWriteWithSameFlatTableDefinition() throws Exception {
         objectsProvider.getPayloadFormat() == null
             ? ""
             : String.format(
-                "TBLPROPERTIES '{\"format\": \"%s\"}'", 
objectsProvider.getPayloadFormat());
+                "TBLPROPERTIES " + "'{ " + "%s" + "\"format\": \"%s\"" + "}'",

Review comment:
       Please remove the string concatenations and make this all a single 
string.
   
   

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -781,6 +836,63 @@ protected abstract PubsubMessage messageIdName(Instant 
timestamp, int id, String
         throws Exception;
   }
 
+  private static class PubsubProtoObjectProvider extends PubsubObjectProvider {
+
+    @Override
+    protected String getPayloadFormat() {
+      return "proto";
+    }
+
+    @Override
+    protected PubsubMessage messageIdName(Instant timestamp, int id, String 
name) {
+
+      PayloadMessages.SimpleMessage.Builder simpleMessage =
+          PayloadMessages.SimpleMessage.newBuilder();

Review comment:
       Nit: you can put setter methods and build() together all on one line.
   
   ```java
   PayloadMessages.SimpleMessage simpleMessage =
       
PayloadMessages.SimpleMessage.newBuilder().setId(id).setName(name).build();
   ```

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -610,20 +650,31 @@ public void 
testSQLReadAndWriteWithSameFlatTableDefinition() throws Exception {
         objectsProvider.getPayloadFormat() == null
             ? ""
             : String.format(
-                "TBLPROPERTIES '{\"format\": \"%s\"}'", 
objectsProvider.getPayloadFormat());
+                "TBLPROPERTIES " + "'{ " + "%s" + "\"format\": \"%s\"" + "}'",
+                
protoClassParam(PayloadMessages.NameHeightKnowsJSMessage.class.getName()),
+                objectsProvider.getPayloadFormat());
+
     String createTableString =
         String.format(
             "CREATE EXTERNAL TABLE people (\n"
                 + "event_timestamp TIMESTAMP, \n"
                 + "name VARCHAR, \n"
                 + "height INTEGER, \n"
-                + "knowsJavascript BOOLEAN \n"
+                + "knows_javascript BOOLEAN \n"
                 + ") \n"
                 + "TYPE '%s' \n"
                 + "LOCATION '%s' \n"
                 + "%s",
             tableProvider.getTableType(), eventsTopic.topicPath(), 
tblProperties);
 
+    String filteredTblProperties =
+        objectsProvider.getPayloadFormat() == null
+            ? ""
+            : String.format(
+                "TBLPROPERTIES " + "'{ " + "%s" + "\"format\": \"%s\"" + "}'",

Review comment:
       Please remove the string concatenations and make this all a single 
string.
   
   

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -781,6 +836,63 @@ protected abstract PubsubMessage messageIdName(Instant 
timestamp, int id, String
         throws Exception;
   }
 
+  private static class PubsubProtoObjectProvider extends PubsubObjectProvider {
+
+    @Override
+    protected String getPayloadFormat() {
+      return "proto";
+    }
+
+    @Override
+    protected PubsubMessage messageIdName(Instant timestamp, int id, String 
name) {
+
+      PayloadMessages.SimpleMessage.Builder simpleMessage =
+          PayloadMessages.SimpleMessage.newBuilder();
+
+      simpleMessage.setId(id);
+      simpleMessage.setName(name);
+
+      return PubsubTableProviderIT.message(
+          timestamp,
+          simpleMessage.build().toByteArray(),
+          ImmutableMap.of(name, Integer.toString(id)));
+    }
+
+    @Override
+    protected Matcher<PubsubMessage> matcherNames(String name) throws 
IOException {

Review comment:
       Why is the `name` argument not used at all here?

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -725,6 +776,10 @@ private String payloadFormatParam() {
         : String.format("\"format\" : \"%s\", ", 
objectsProvider.getPayloadFormat());
   }
 
+  private String protoClassParam(String protoClassName) {

Review comment:
       Nit: this helper method replaces`String.format("\"protoClass\" : 
\"%s\"", protoClassName)` with `String.format("%s", 
protoClassParam(protoClassName))`. The helper method introduces indirection, 
which makes the JSON strings harder to read, but doesn't really add much 
benefit. So please remove `protoClassParam`.

##########
File path: 
sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/meta/provider/pubsub/PubsubTableProviderIT.java
##########
@@ -781,6 +836,63 @@ protected abstract PubsubMessage messageIdName(Instant 
timestamp, int id, String
         throws Exception;
   }
 
+  private static class PubsubProtoObjectProvider extends PubsubObjectProvider {
+
+    @Override
+    protected String getPayloadFormat() {
+      return "proto";
+    }
+
+    @Override
+    protected PubsubMessage messageIdName(Instant timestamp, int id, String 
name) {
+
+      PayloadMessages.SimpleMessage.Builder simpleMessage =
+          PayloadMessages.SimpleMessage.newBuilder();

Review comment:
       Nit: you can call setter methods and build() all together.
   
   ```java
   PayloadMessages.SimpleMessage simpleMessage =
       
PayloadMessages.SimpleMessage.newBuilder().setId(id).setName(name).build();
   ```




-- 
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to