lukecwik commented on a change in pull request #15685:
URL: https://github.com/apache/beam/pull/15685#discussion_r727569260



##########
File path: sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
##########
@@ -299,6 +299,13 @@ public int hashCode() {
      */
     IterableAssert<T> containsInAnyOrder(T... expectedElements);
 
+    /**
+     * Asserts that the iterable in question matches the provided elements.
+     *
+     * @return the same {@link IterableAssert} builder for further assertions
+     */

Review comment:
       The reason why this wasn't exposed is because the method is ambiguous as 
you noticed that you had to modify the tests. Others have run into similar 
issues like 
https://stackoverflow.com/questions/18614621/conflicting-overloads-for-hamcrest-matcher
   
   I think this is a good idea as well but as you can see users will need to 
change their code. Please send a message to [email protected] to see what 
the larger community thinks.

##########
File path: sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
##########
@@ -299,6 +299,13 @@ public int hashCode() {
      */
     IterableAssert<T> containsInAnyOrder(T... expectedElements);
 
+    /**
+     * Asserts that the iterable in question matches the provided elements.
+     *
+     * @return the same {@link IterableAssert} builder for further assertions
+     */
+    IterableAssert<T> containsInAnyOrder(SerializableMatcher<? super T>... 
expectedElements);
+

Review comment:
       There are still additional tests failing:
   ```
   14:59:05 > Task :sdks:java:extensions:sql:zetasql:compileTestJava
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:1226:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:1554:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:1857:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:2578:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:2846:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 Note: Some input files use or override a deprecated API.
   14:59:05 Note: Recompile with -Xlint:deprecation for details.
   14:59:05 Note: 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/BeamZetaSqlCalcRelTest.java
 uses unchecked or unsafe operations.
   14:59:05 Note: Recompile with -Xlint:unchecked for details.
   14:59:05 5 errors
   ```
   
   You can verify locally by running `./gradle compileTestJava`

##########
File path: sdks/java/core/src/main/java/org/apache/beam/sdk/testing/PAssert.java
##########
@@ -299,6 +299,13 @@ public int hashCode() {
      */
     IterableAssert<T> containsInAnyOrder(T... expectedElements);
 
+    /**
+     * Asserts that the iterable in question matches the provided elements.
+     *
+     * @return the same {@link IterableAssert} builder for further assertions
+     */
+    IterableAssert<T> containsInAnyOrder(SerializableMatcher<? super T>... 
expectedElements);
+

Review comment:
       There are still additional tests failing:
   ```
   14:59:05 > Task :sdks:java:extensions:sql:zetasql:compileTestJava
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:1226:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:1554:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:1857:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:2578:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlDialectSpecTest.java:2846:
 error: reference to containsInAnyOrder is ambiguous
   14:59:05     PAssert.that(stream).containsInAnyOrder();
   14:59:05                         ^
   14:59:05   both method containsInAnyOrder(T...) in IterableAssert and method 
containsInAnyOrder(SerializableMatcher<? super T>...) in IterableAssert match
   14:59:05   where T is a type-variable:
   14:59:05     T extends Object declared in interface IterableAssert
   14:59:05 Note: Some input files use or override a deprecated API.
   14:59:05 Note: Recompile with -Xlint:deprecation for details.
   14:59:05 Note: 
/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_Commit@3/src/sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/BeamZetaSqlCalcRelTest.java
 uses unchecked or unsafe operations.
   14:59:05 Note: Recompile with -Xlint:unchecked for details.
   14:59:05 5 errors
   ```
   
   You can verify locally by running `./gradlew compileTestJava`




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


Reply via email to