Skip to content

Commit 2b7010d

Browse files
idodeclareVladimir Kotal
authored andcommitted
Fix test robustness after AnalyzerGuru list growth
1 parent c5ef7ff commit 2b7010d

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

opengrok-indexer/src/test/java/org/opengrok/indexer/index/IndexAnalysisSettingsUpgraderTest.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*/
1919

2020
/*
21-
* Copyright (c) 2018-2019, Chris Fraire <[email protected]>.
21+
* Copyright (c) 2018-2020, Chris Fraire <[email protected]>.
2222
*/
2323

2424
package org.opengrok.indexer.index;
@@ -30,6 +30,7 @@
3030
import static org.junit.Assert.assertTrue;
3131

3232
import java.io.IOException;
33+
import java.util.ArrayList;
3334
import java.util.HashMap;
3435
import java.util.Map;
3536
import org.junit.Test;
@@ -74,23 +75,22 @@ public void shouldHandleLatest() throws IOException,
7475
(long)vLatest.getAnalyzerGuruVersion());
7576
assertEquals("should have expected analyzer versions",
7677
vLatest.getAnalyzersVersions().size(), actAnalyzersVersionNos.size());
77-
/*
78-
* Smelly but I know the underlying Map implementations are the same;
79-
* otherwise the following tests might not work.
80-
*/
78+
79+
Object[] expectedVersionKeys = actAnalyzersVersionNos.keySet().stream().sorted().toArray();
8180
assertArrayEquals("analyzer versions keysets should be equal",
82-
actAnalyzersVersionNos.keySet().toArray(),
83-
vLatest.getAnalyzersVersions().keySet().toArray());
81+
expectedVersionKeys,
82+
vLatest.getAnalyzersVersions().keySet().stream().sorted().toArray());
8483
assertArrayEquals("analyzer versions values should be equal",
85-
actAnalyzersVersionNos.values().toArray(),
86-
vLatest.getAnalyzersVersions().values().toArray());
84+
getMapValues(actAnalyzersVersionNos, expectedVersionKeys),
85+
getMapValues(vLatest.getAnalyzersVersions(), expectedVersionKeys));
8786

87+
Object[] expectedSymlinkKeys = TEST_MAPPED_SYMLINKS.keySet().stream().sorted().toArray();
8888
assertArrayEquals("index symlinks keysets should be equal",
89-
TEST_MAPPED_SYMLINKS.keySet().toArray(),
90-
vLatest.getIndexedSymlinks().keySet().toArray());
89+
expectedSymlinkKeys,
90+
vLatest.getIndexedSymlinks().keySet().stream().sorted().toArray());
9191
assertArrayEquals("index symlinks values should be equal",
92-
TEST_MAPPED_SYMLINKS.values().toArray(),
93-
vLatest.getIndexedSymlinks().values().toArray());
92+
getMapValues(TEST_MAPPED_SYMLINKS, expectedSymlinkKeys),
93+
getMapValues(vLatest.getIndexedSymlinks(), expectedSymlinkKeys));
9494
}
9595

9696
@Test
@@ -148,4 +148,13 @@ public void shouldThrowIfTooOldVersion() throws ClassNotFoundException {
148148
}
149149
assertTrue("should have thrown on too-old version", passed);
150150
}
151+
152+
private static <K, V> Object[] getMapValues(Map<K, V> map, Object[] keys) {
153+
Object[] values = new Object[keys.length];
154+
for (int i = 0; i < keys.length; ++i) {
155+
//noinspection SuspiciousMethodCalls
156+
values[i] = map.get(keys[i]);
157+
}
158+
return values;
159+
}
151160
}

0 commit comments

Comments
 (0)