Skip to content

Commit bf2f2aa

Browse files
committed
Annotation index: Add a unit test for repeated class path elements
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 88f929b commit bf2f2aa

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

src/test/java/org/scijava/annotations/DirectoryIndexerTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
package org.scijava.annotations;
3333

3434
import static org.junit.Assert.assertEquals;
35+
import static org.junit.Assert.assertFalse;
3536
import static org.junit.Assert.assertNotNull;
3637
import static org.junit.Assert.assertTrue;
3738
import static org.junit.Assume.assumeTrue;
@@ -40,12 +41,15 @@
4041
import java.io.IOException;
4142
import java.lang.annotation.Annotation;
4243
import java.net.URL;
44+
import java.net.URLClassLoader;
4345
import java.net.URLConnection;
4446
import java.util.ArrayList;
4547
import java.util.Collections;
4648
import java.util.Enumeration;
49+
import java.util.HashSet;
4750
import java.util.List;
4851
import java.util.Map;
52+
import java.util.Set;
4953
import java.util.TreeMap;
5054

5155
import org.junit.Test;
@@ -89,6 +93,26 @@ public void testIndexer() throws Exception {
8993
testDefaultAnnotations(map);
9094
}
9195

96+
@Test
97+
public void testRepeatedClassPathElements() throws Exception {
98+
final String suffix = getResourcePath(AnnotatedA.class);
99+
final String classURL =
100+
getClass().getResource("/" + suffix).toString();
101+
final URL classPathURL = new URL(classURL.substring(0,
102+
classURL.length() - suffix.length()));
103+
final ClassLoader loader = new URLClassLoader(new URL[] {
104+
classPathURL, classPathURL
105+
});
106+
final Set<String> seen = new HashSet<String>();
107+
for (final IndexItem<Simple> item :
108+
Index.load(Simple.class, loader)) {
109+
final String name = item.className();
110+
assertFalse(seen.contains(name));
111+
seen.add(name);
112+
}
113+
assertEquals(2, seen.size());
114+
}
115+
92116
public static void
93117
testDefaultAnnotations(Map<String, IndexItem<Complex>> map)
94118
{

0 commit comments

Comments
 (0)