24
24
import org .elasticsearch .test .ESTestCase ;
25
25
import org .hamcrest .CoreMatchers ;
26
26
import org .hamcrest .Matchers ;
27
+ import org .mockito .internal .util .collections .Sets ;
27
28
28
29
import java .util .ArrayList ;
29
30
import java .util .Arrays ;
30
- import java .util .Collections ;
31
31
import java .util .Iterator ;
32
32
import java .util .List ;
33
33
import java .util .Map ;
@@ -112,7 +112,7 @@ public void testBasicMatch() {
112
112
String delimiterFirstInput = "" ;
113
113
String delimiterFirstPattern = "" ;
114
114
//parallel arrays
115
- List <String > expectedKeys = Arrays . asList (generateRandomStringArray (100 , 10 , false , false ));
115
+ List <String > expectedKeys = new ArrayList <>( Sets . newSet (generateRandomStringArray (100 , 10 , false , false ) ));
116
116
List <String > expectedValues = new ArrayList <>(expectedKeys .size ());
117
117
for (String key : expectedKeys ) {
118
118
String value = randomAsciiAlphanumOfLengthBetween (1 , 100 );
@@ -127,7 +127,6 @@ public void testBasicMatch() {
127
127
assertMatch (delimiterFirstPattern , delimiterFirstInput , expectedKeys , expectedValues );
128
128
}
129
129
130
- @ AwaitsFix (bugUrl = "https://github.com/elastic/elasticsearch/issues/39244" )
131
130
public void testBasicMatchUnicode () {
132
131
String valueFirstInput = "" ;
133
132
String keyFirstPattern = "" ;
@@ -138,6 +137,9 @@ public void testBasicMatchUnicode() {
138
137
List <String > expectedValues = new ArrayList <>();
139
138
for (int i = 0 ; i < randomIntBetween (1 , 100 ); i ++) {
140
139
String key = randomAsciiAlphanumOfLengthBetween (1 , 100 );
140
+ while (expectedKeys .contains (key )) { // keys should be unique in this test
141
+ key = randomAsciiAlphanumOfLengthBetween (1 , 100 );
142
+ }
141
143
String value = randomRealisticUnicodeOfCodepointLengthBetween (1 , 100 );
142
144
String delimiter = Integer .toString (randomInt ()); //int to ensures values and delimiters don't overlap, else validation can fail
143
145
keyFirstPattern += "%{" + key + "}" + delimiter ;
@@ -375,13 +377,11 @@ private void assertMatch(String pattern, String input, List<String> expectedKeys
375
377
376
378
private void assertMatch (String pattern , String input , List <String > expectedKeys , List <String > expectedValues , String appendSeperator ) {
377
379
Map <String , String > results = new DissectParser (pattern , appendSeperator ).parse (input );
378
- List <String > foundKeys = new ArrayList <>(results .keySet ());
379
- List <String > foundValues = new ArrayList <>(results .values ());
380
- Collections .sort (foundKeys );
381
- Collections .sort (foundValues );
382
- Collections .sort (expectedKeys );
383
- Collections .sort (expectedValues );
384
- assertThat (foundKeys , Matchers .equalTo (expectedKeys ));
385
- assertThat (foundValues , Matchers .equalTo (expectedValues ));
380
+ assertThat (results .size (), Matchers .equalTo (expectedKeys .size ()));
381
+ assertThat (results .size (), Matchers .equalTo (expectedValues .size ()));
382
+ for (int i = 0 ; i < results .size (); i ++) {
383
+ final String key = expectedKeys .get (i );
384
+ assertThat (results .get (key ), Matchers .equalTo (expectedValues .get (i )));
385
+ }
386
386
}
387
387
}
0 commit comments