package org.opennms.netmgt.jasper.resource; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Test; public class ResourceQueryParserTest { @Test public void testCommandParsing() { ResourceQueryCommandParser parser = new ResourceQueryCommandParser(); ResourceQuery rQuery = parser.parseQueryCommand(getResourceQuery()); assertNotNull(rQuery); assertTrue(rQuery.getRrdDir().matches(".*src/test/resources/share/rrd/snmp")); assertEquals("10", rQuery.getNodeId()); assertEquals("nsVpnMonitor", rQuery.getResourceName()); } @Test public void testCommandParsingWithFilter() { ResourceQueryCommandParser parser = new ResourceQueryCommandParser(); ResourceQuery rQuery = parser.parseQueryCommand(getResourceQueryWithFilter()); assertNotNull(rQuery); assertTrue(rQuery.getRrdDir().matches(".*src/test/resources/share/rrd/snmp")); assertEquals("10", rQuery.getNodeId()); assertEquals("nsVpnMonitor", rQuery.getResourceName()); String[] filters = rQuery.getFilters(); assertEquals(2, filters.length); assertEquals("http.dump", filters[0]); assertEquals("icmp.jrb", filters[1]); } @Test public void testCommandParsingWithStringProperty() { ResourceQueryCommandParser parser = new ResourceQueryCommandParser(); ResourceQuery rQuery = parser.parseQueryCommand(getResourceQueryWithStringProperty()); assertNotNull(rQuery); assertTrue(rQuery.getRrdDir().matches(".*src/test/resources/share/rrd/snmp")); assertEquals("10", rQuery.getNodeId()); assertEquals("nsVpnMonitor", rQuery.getResourceName()); String[] filters = rQuery.getFilters(); assertEquals(2, filters.length); assertEquals("http.dump", filters[0]); assertEquals("icmp.jrb", filters[1]); String[] properties = rQuery.getStringProperties(); assertNotNull(properties); assertEquals(2, properties.length); assertEquals("nsVpnMonVpnName", properties[0]); assertEquals("name2", properties[1]); } private String getResourceQuery() { return "--rrdDir /Users/thedesloge/git/opennms/integrations/opennms-jasper-extensions/src/test/resources/share/rrd/snmp --nodeid 10 --resourceType nsVpnMonitor"; } private String getResourceQueryWithFilter() { return "--rrdDir /Users/thedesloge/git/opennms/integrations/opennms-jasper-extensions/src/test/resources/share/rrd/snmp --nodeid 10 --resourceType nsVpnMonitor --dsName http.dump,icmp.jrb"; } private String getResourceQueryWithStringProperty() { return "--rrdDir /Users/thedesloge/git/opennms/integrations/opennms-jasper-extensions/src/test/resources/share/rrd/snmp --nodeid 10 --resourceType nsVpnMonitor --dsName http.dump,icmp.jrb --string nsVpnMonVpnName,name2"; } }