Skip to content

Commit 06e5294

Browse files
authored
Merge pull request #173 from kaiyaok2/FixingFlaky
fix: addressing indeterminate Map / JSON orderings in tests
2 parents a68055c + 5e5b3ec commit 06e5294

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

wls-exporter-core/src/main/java/com/oracle/wls/exporter/domain/MBeanSelector.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.Arrays;
88
import java.util.Collections;
99
import java.util.HashMap;
10+
import java.util.LinkedHashMap;
1011
import java.util.HashSet;
1112
import java.util.List;
1213
import java.util.Map;
@@ -37,7 +38,7 @@ public class MBeanSelector {
3738
private String key;
3839
private String keyName;
3940
private String[] values = null;
40-
private Map<String, MBeanSelector> nestedSelectors = new HashMap<>();
41+
private Map<String, MBeanSelector> nestedSelectors = new LinkedHashMap<>();
4142
private QueryType queryType = QueryType.RUNTIME;
4243

4344
private static MBeanSelector createDomainNameSelector() {
@@ -257,7 +258,7 @@ private MBeanSelector(MBeanSelector first, MBeanSelector second) {
257258
mergedValues.addAll(second.getValuesAsList());
258259
values = mergedValues.toArray(new String[0]);
259260

260-
nestedSelectors = new HashMap<>();
261+
nestedSelectors = new LinkedHashMap<>();
261262
nestedSelectors.putAll(first.nestedSelectors);
262263
for (String key : second.nestedSelectors.keySet()) {
263264
if (!nestedSelectors.containsKey(key))

wls-exporter-core/src/test/java/com/oracle/wls/exporter/WebClientTestBase.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.function.Supplier;
1111

1212
import com.google.gson.Gson;
13+
import com.google.gson.JsonParser;
1314
import com.meterware.pseudoserver.PseudoServer;
1415
import com.meterware.pseudoserver.PseudoServlet;
1516
import com.meterware.pseudoserver.WebResource;
@@ -138,7 +139,9 @@ public WebResource getPutResponse() {
138139

139140
withWebClient("unprotected_put").doPutRequest(QUERY);
140141

141-
assertThat(sentInfo, equalTo(QUERY.getAsJson()));
142+
JsonParser parser = new JsonParser();
143+
144+
assertThat(parser.parse(sentInfo), equalTo(parser.parse(QUERY.getAsJson())));
142145
}
143146

144147
@SuppressWarnings({"FieldCanBeLocal", "unused"})

wls-exporter-core/src/test/java/com/oracle/wls/exporter/domain/MBeanSelectorTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import com.google.common.collect.ImmutableMap;
1212
import com.google.gson.Gson;
13+
import com.google.gson.JsonParser;
1314
import org.junit.jupiter.api.Test;
1415

1516
import static com.oracle.wls.exporter.domain.JsonPathMatcher.hasJsonPath;
@@ -311,8 +312,9 @@ public void whenSelectorsHaveDeeplyNestedElementsWithDifferentName_merge() {
311312
@Test
312313
public void generateJsonRequest() {
313314
MBeanSelector selector = MBeanSelector.create(ImmutableMap.of("applicationRuntimes", getApplicationMap()));
315+
JsonParser parser = new JsonParser();
314316

315-
assertThat(selector.getRequest(), equalTo(compressedJsonForm(EXPECTED_JSON_REQUEST)));
317+
assertThat(parser.parse(selector.getRequest()), equalTo(parser.parse(compressedJsonForm(EXPECTED_JSON_REQUEST))));
316318
}
317319

318320
private Map<String, Object> getApplicationMap() {
@@ -374,8 +376,9 @@ else if (!Character.isWhitespace(c))
374376
@Test
375377
public void whenNoValuesListedForSerlvets_generateJsonRequest() {
376378
MBeanSelector selector = MBeanSelector.create(ImmutableMap.of("applicationRuntimes", getNoServletValuesApplicationMap()));
379+
JsonParser parser = new JsonParser();
377380

378-
assertThat(selector.getRequest(), equalTo(compressedJsonForm(EXPECTED_ALL_SERVLET_VALUES_JSON_REQUEST)));
381+
assertThat(parser.parse(selector.getRequest()), equalTo(parser.parse(compressedJsonForm(EXPECTED_ALL_SERVLET_VALUES_JSON_REQUEST))));
379382
}
380383

381384
private Map<String, Object> getNoServletValuesApplicationMap() {

0 commit comments

Comments
 (0)