package org.opennms.netmgt.jasper.helper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.List;
import org.junit.Test;
public class ResourcePathFileTraversalTest {
private String m_baseDir = "src/test/resources/share/rrd/snmp";
private String m_resourceName = "nsVpnMonitor";
private int m_nodeId = 10;
@Test
public void testFindAllPathsRecursive() {
ResourcePathFileTraversal traverser = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/" + m_resourceName));
List<String> paths = traverser.traverseDirectory();
assertTrue(paths.get(0).matches(".*src/test/resources/share/rrd/snmp/10/nsVpnMonitor/tun_id_1"));
assertTrue(paths.get(1).matches(".*src/test/resources/share/rrd/snmp/10/nsVpnMonitor/tun_id_2"));
}
@Test
public void testFindTopLevelOnlyIfPassesFilenameCheck() {
ResourcePathFileTraversal traverser = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/opennms-jvm"));
traverser.addDatasourceFilter("ThreadCount");
traverser.addDatasourceFilter("Bogus");
List<String> paths = traverser.traverseDirectory();
assertEquals(0, paths.size());
}
@Test
public void testFindPathsWithFilterOneFile() {
ResourcePathFileTraversal traverser = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/" + m_resourceName));
traverser.addDatasourceFilter("http-8980");
List<String> paths = traverser.traverseDirectory();
assertEquals(2, paths.size());
assertTrue(paths.get(0).matches(".*src/test/resources/share/rrd/snmp/10/nsVpnMonitor/tun_id_2"));
}
@Test
public void testFindPathsWithAndFilter() {
ResourcePathFileTraversal traverser = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/" + m_resourceName));
traverser.addDatasourceFilter("http");
traverser.addDatasourceFilter("icmp");
List<String> paths = traverser.traverseDirectory();
assertEquals(1, paths.size());
assertTrue(paths.get(0).matches(".*src/test/resources/share/rrd/snmp/10/nsVpnMonitor/tun_id_3"));
}
@Test
public void testFindPathsWithFilterNoExtensions() {
ResourcePathFileTraversal traverser = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/" + m_resourceName));
traverser.addDatasourceFilter("http");
traverser.addDatasourceFilter("icmp");
List<String> paths = traverser.traverseDirectory();
assertEquals(1, paths.size());
assertTrue(paths.get(0).matches(".*src/test/resources/share/rrd/snmp/10/nsVpnMonitor/tun_id_3"));
}
@Test
public void testFindPathsWithStoreByGroup() {
System.setProperty("org.opennms.rrd.storeByGroup", "true");
ResourcePathFileTraversal traverser = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/storeby-group-jvm"));
traverser.addDatasourceFilter("TotalMemory");
List<String> paths = traverser.traverseDirectory();
assertEquals(1, paths.size());
assertTrue(paths.get(0).matches(".*src/test/resources/share/rrd/snmp/10/storeby-group-jvm"));
ResourcePathFileTraversal traverser2 = new ResourcePathFileTraversal(new File(m_baseDir + "/" + m_nodeId + "/storeby-group-jvm"));
traverser2.addDatasourceFilter("Bogus");
paths = traverser2.traverseDirectory();
assertEquals(0, paths.size());
}
}