package org.opennms.util.ilr; import static org.junit.Assert.*; import org.junit.Test; import org.opennms.util.ilr.LogMessage; public class ServiceCollectorTest { @Test(expected=IllegalArgumentException.class) public void testServiceIDCheck() { String serviceID = "1/1.1.1.1/SVC"; ServiceCollector svcCollector = new ServiceCollector(serviceID); LogMessage startMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect:" + " begin:24/216.216.217.254/SNMP"); svcCollector.addMessage(startMessage); } @Test public void testCollectAddMessage() { ServiceCollector svcCollector = setupServiceCollector(); assertEquals("24/216.216.217.254/SNMP", svcCollector.getServiceID()); assertEquals(0, svcCollector.getCollectionCount()); assertEquals(0, svcCollector.getAverageCollectionTime()); setupCollectionMessages(svcCollector); assertEquals(1, svcCollector.getCollectionCount()); assertEquals(20000L, svcCollector.getAverageCollectionTime()); assertEquals(100,svcCollector.getSuccessPercentage(),0); } @Test public void testErrorAddMessage() { ServiceCollector svcCollector = setupServiceCollector(); assertEquals("24/216.216.217.254/SNMP", svcCollector.getServiceID()); assertEquals(0, svcCollector.getErrorCollectionTime()); assertEquals(0,svcCollector.getErrorCollectionCount()); setupErrorMessages(svcCollector); assertEquals(1,svcCollector.getErrorCollectionCount()); assertEquals(100.00,svcCollector.getErrorPercentage(),0); assertEquals(20000L,svcCollector.getAverageErrorCollectionTime()); } @Test public void testPersistAddMessage() { ServiceCollector svcCollector = setupServiceCollector(); assertEquals("24/216.216.217.254/SNMP",svcCollector.getServiceID()); assertEquals(0,svcCollector.getTotalPersistTime()); assertEquals(0,svcCollector.getPersistCount()); setupPersistMessages(svcCollector); assertEquals(1, svcCollector.getPersistCount()); assertEquals(20000L, svcCollector.getAveragePersistTime()); } @Test public void testGetCollectionTimeWithDifferentDates() { ServiceCollector svcCollector = setupServiceCollector(); assertEquals(0,svcCollector.getPersistCount()); assertEquals(0, svcCollector.getErrorCollectionCount()); assertEquals(0, svcCollector.getCollectionCount()); LogMessage startOneDayApartCollectionMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect: " + "begin:24/216.216.217.254/SNMP"); LogMessage endOneDayApartCollectionMessage = BaseLogMessage.create("2010-05-27 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect" + ": end:24/216.216.217.254/SNMP"); svcCollector.addMessage(startOneDayApartCollectionMessage); svcCollector.addMessage(endOneDayApartCollectionMessage); assertEquals(1, svcCollector.getCollectionCount()); assertEquals(86400000L, svcCollector.getAverageCollectionTime()); //test milliseconds in a day vs a one day long SUCCESSFUL collection } @Test public void testGetErrorTimeWithDifferentDates() { ServiceCollector svcCollector = setupServiceCollector(); LogMessage startOneDayApartErrorCollectionMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect: " + "begin:24/216.216.217.254/SNMP"); LogMessage oneDayApartErrorMessage = BaseLogMessage.create("2010-05-27 12:00:00,884 DEBUG [CollectdScheduler-200 Pool-fiber86] Collectd: collector.collect: error:" + " 24/216.216.217.254/SNMP: org.opennms.netmgt.collectd.CollectionWarning: collect: collection failed for 172.30.248.86"); LogMessage endOneDayApartErrorCollectionMessage = BaseLogMessage.create("2010-05-27 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect" + ": end:24/216.216.217.254/SNMP"); svcCollector.addMessage(startOneDayApartErrorCollectionMessage); svcCollector.addMessage(oneDayApartErrorMessage); svcCollector.addMessage(endOneDayApartErrorCollectionMessage); assertEquals(1, svcCollector.getErrorCollectionCount()); assertEquals(86400000L, svcCollector.getErrorCollectionTime()); //test milliseconds in a day vs a one day long ERROR collection) } @Test public void testGetPersistTimeWithDifferentDates() { ServiceCollector svcCollector = setupServiceCollector(); LogMessage startOneDayApartPersistMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-200 Pool-fiber81] Collectd: " + "collector.collect: persistDataQueueing: begin: 24/216.216.217.254/SNMP"); LogMessage endOneDayApartPersistMessage = BaseLogMessage.create("2010-05-27 12:12:18,027 DEBUG [CollectdScheduler-200 Pool-fiber22] Collectd: " + "collector.collect: persistDataQueueing: end: 24/216.216.217.254/SNMP"); svcCollector.addMessage(startOneDayApartPersistMessage); svcCollector.addMessage(endOneDayApartPersistMessage); assertEquals(1, svcCollector.getPersistCount()); assertEquals(86400000L, svcCollector.getTotalPersistTime()); //test milliseconds in a day vs a one day long PERSIST) } @Test public void testGetParsedServiceID() { ServiceCollector svcCollector = setupServiceCollector(); assertEquals("24/216.216.217.254/SNMP", svcCollector.getServiceID()); assertEquals("24", svcCollector.getParsedServiceID()); String wrongFormatServiceID = "153.5.8/32/SVC"; ServiceCollector expectFailureCollector = new ServiceCollector(wrongFormatServiceID); assertEquals(wrongFormatServiceID, expectFailureCollector.getServiceID()); assertEquals("Wrong ID", expectFailureCollector.getParsedServiceID()); } public void setupCollectionMessages(ServiceCollector svcCollector){ LogMessage startNormalCollectionMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect: " + "begin:24/216.216.217.254/SNMP"); LogMessage endNormalCollectionMessage = BaseLogMessage.create("2010-05-26 12:12:38,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect" + ": end:24/216.216.217.254/SNMP"); svcCollector.addMessage(startNormalCollectionMessage); svcCollector.addMessage(endNormalCollectionMessage); } public void setupErrorMessages(ServiceCollector svcCollector){ LogMessage startErrorCollectionMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect: " + "begin:24/216.216.217.254/SNMP"); LogMessage ErrorMessage = BaseLogMessage.create("2010-05-26 12:56:23,884 DEBUG [CollectdScheduler-200 Pool-fiber86] Collectd: collector.collect: error:" + " 24/216.216.217.254/SNMP: org.opennms.netmgt.collectd.CollectionWarning: collect: collection failed for 172.30.248.86"); LogMessage endErrorCollectionMessage = BaseLogMessage.create("2010-05-26 12:12:38,027 DEBUG [CollectdScheduler-50 Pool-fiber11] Collectd: collector.collect" + ": end:24/216.216.217.254/SNMP"); svcCollector.addMessage(startErrorCollectionMessage); svcCollector.addMessage(ErrorMessage); svcCollector.addMessage(endErrorCollectionMessage); } public void setupPersistMessages(ServiceCollector svcCollector) { LogMessage startPersistMessage = BaseLogMessage.create("2010-05-26 12:12:18,027 DEBUG [CollectdScheduler-200 Pool-fiber81] Collectd: " + "collector.collect: persistDataQueueing: begin: 24/216.216.217.254/SNMP"); LogMessage endPersistMessage = BaseLogMessage.create("2010-05-26 12:12:38,027 DEBUG [CollectdScheduler-200 Pool-fiber22] Collectd: " + "collector.collect: persistDataQueueing: end: 24/216.216.217.254/SNMP"); svcCollector.addMessage(startPersistMessage); svcCollector.addMessage(endPersistMessage); } public ServiceCollector setupServiceCollector() { String serviceID = "24/216.216.217.254/SNMP"; ServiceCollector svcCollector = new ServiceCollector(serviceID); return svcCollector; } }