package org.gbif.checklistbank.nub.source; import org.gbif.api.vocabulary.Rank; import org.gbif.checklistbank.nub.model.SrcUsage; import org.gbif.checklistbank.utils.ResourcesMonitor; import java.util.List; import com.google.common.collect.Lists; import org.junit.Ignore; import org.junit.Test; import org.neo4j.helpers.collection.Iterables; import static org.junit.Assert.assertEquals; public class ClasspathSourceListTest { @Test public void testListSources() throws Exception { ClasspathSourceList src = ClasspathSourceList.source(1, 2, 3, 4, 5, 10, 11, 23, 12, 31); src.setSourceRank(23, Rank.KINGDOM); List<NubSource> sources = Iterables.asList(src); assertEquals(10, sources.size()); assertEquals(Rank.FAMILY, sources.get(0).ignoreRanksAbove); assertEquals(Rank.KINGDOM, sources.get(7).ignoreRanksAbove); } /** * Test large amount of nub sources to see if neo4j / dao resources are managed properly */ @Test @Ignore("Manual test to debug too many open files or other neo4j resource problems") public void testLargeLists() throws Exception { ResourcesMonitor monitor = new ResourcesMonitor(); monitor.run(); List<ClasspathSource> sources = Lists.newArrayList(); // try 30 classpath sources 100 times = 3000 sources! for (int rep=0; rep<100; rep++) { for (int id=1; id<31; id++) { sources.add(new ClasspathSource(id)); } } ClasspathSourceList srcList = new ClasspathSourceList(sources); monitor.run(); for (NubSource src : srcList) { int counter = 0; for (SrcUsage u : src) { counter++; } src.close(); monitor.run(); } } }