|
18 | 18 | */
|
19 | 19 |
|
20 | 20 | /*
|
21 |
| - * Copyright (c) 2018-2019, Chris Fraire <[email protected]>. |
| 21 | + * Copyright (c) 2018-2020, Chris Fraire <[email protected]>. |
22 | 22 | */
|
23 | 23 |
|
24 | 24 | package org.opengrok.indexer.index;
|
|
30 | 30 | import static org.junit.Assert.assertTrue;
|
31 | 31 |
|
32 | 32 | import java.io.IOException;
|
| 33 | +import java.util.ArrayList; |
33 | 34 | import java.util.HashMap;
|
34 | 35 | import java.util.Map;
|
35 | 36 | import org.junit.Test;
|
@@ -74,23 +75,22 @@ public void shouldHandleLatest() throws IOException,
|
74 | 75 | (long)vLatest.getAnalyzerGuruVersion());
|
75 | 76 | assertEquals("should have expected analyzer versions",
|
76 | 77 | 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(); |
81 | 80 | 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()); |
84 | 83 | 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)); |
87 | 86 |
|
| 87 | + Object[] expectedSymlinkKeys = TEST_MAPPED_SYMLINKS.keySet().stream().sorted().toArray(); |
88 | 88 | 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()); |
91 | 91 | 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)); |
94 | 94 | }
|
95 | 95 |
|
96 | 96 | @Test
|
@@ -148,4 +148,13 @@ public void shouldThrowIfTooOldVersion() throws ClassNotFoundException {
|
148 | 148 | }
|
149 | 149 | assertTrue("should have thrown on too-old version", passed);
|
150 | 150 | }
|
| 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 | + } |
151 | 160 | }
|
0 commit comments