Forráskód Böngészése

Fix testDeleteAny when there's duplicate chars in the generated string (#91082)

Simon Cooper 3 éve
szülő
commit
ba32dc4dab

+ 6 - 5
server/src/test/java/org/elasticsearch/common/StringsTests.java

@@ -180,7 +180,6 @@ public class StringsTests extends ESTestCase {
         );
     }
 
-    @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/91075")
     public void testDeleteAny() {
         assertNull(deleteAny((CharSequence) null, "abc"));
         assertNull(deleteAny((String) null, "abc"));
@@ -191,10 +190,12 @@ public class StringsTests extends ESTestCase {
 
         String testStr = randomUnicodeOfLength(10);
         String delete = testStr.substring(testStr.length() - 1) + testStr.substring(0, 1);
-        assertThat(deleteAny(testStr, delete), equalTo(testStr.substring(1, testStr.length() - 1)));
-        assertThat(deleteAny(new StringBuilder(testStr), delete), hasToString(testStr.substring(1, testStr.length() - 1)));
-
-        // this method doesn't really work with surrogates
+        String expected = testStr.chars()
+            .mapToObj(Character::toString)
+            .filter(c -> delete.contains(c) == false)
+            .collect(Collectors.joining());
+        assertThat(deleteAny(testStr, delete), equalTo(expected));
+        assertThat(deleteAny(new StringBuilder(testStr), delete), hasToString(expected));
     }
 
     public void testSplitStringToSet() {