/******************************************************************************* * This file is part of OpenNMS(R). * * Copyright (C) 2006-2011 The OpenNMS Group, Inc. * OpenNMS(R) is Copyright (C) 1999-2011 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * * OpenNMS(R) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * OpenNMS(R) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenNMS(R). If not, see: * http://www.gnu.org/licenses/ * * For more information contact: * OpenNMS(R) Licensing <license@opennms.org> * http://www.opennms.org/ * http://www.opennms.com/ *******************************************************************************/ package org.opennms.netmgt.config; import java.io.ByteArrayInputStream; import java.io.InputStream; import org.opennms.core.test.MockLogAppender; import org.opennms.netmgt.mock.EventAnticipator; import org.opennms.netmgt.mock.MockEventIpcManager; import org.opennms.netmgt.mock.OpenNMSTestCase; import org.opennms.netmgt.mock.OutageAnticipator; import org.opennms.netmgt.translator.EventTranslator; /** * @author mhuot * */ public class EventTranslatorConfigFactoryTest extends OpenNMSTestCase { private EventTranslator m_translator; private MockEventIpcManager m_eventMgr; private String m_passiveStatusConfiguration = getStandardConfig(); private EventTranslatorConfigFactory m_config; private EventAnticipator m_anticipator; private OutageAnticipator m_outageAnticipator; /* * @see TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); MockLogAppender.setupLogging(); createAnticipators(); m_eventMgr = new MockEventIpcManager(); m_eventMgr.setEventWriter(m_db); m_eventMgr.setEventAnticipator(m_anticipator); m_eventMgr.addEventListener(m_outageAnticipator); m_eventMgr.setSynchronous(true); InputStream rdr = new ByteArrayInputStream(m_passiveStatusConfiguration.getBytes("UTF-8")); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); m_translator.setDataSource(m_db); m_translator.init(); m_translator.start(); } /* * @see TestCase#tearDown() */ protected void tearDown() throws Exception { super.tearDown(); MockLogAppender.assertNoWarningsOrGreater(); } public void testDoNothing() { // FIXME: This is because the below test is commented out } private void createAnticipators() { m_anticipator = new EventAnticipator(); m_outageAnticipator = new OutageAnticipator(m_db); } private String getStandardConfig() { return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<event-translator-configuration \n" + "xmlns=\"http://xmlns.opennms.org/xsd/translator-configuration\" \n" + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\n" + " <translation>\n" + " <event-translation-spec uei=\"uei.opennms.org/services/translationTest\">\n" + " <mappings>\n" + " <mapping>\n" + " <assignment type=\"field\" name=\"nodeid\">\n" + " <value type=\"sql\" result=\"select node.nodeid from node, ipInterface where node.nodeLabel=? and ipinterface.ipaddr=? and node.nodeId=ipinterface.nodeid and ipInterface.isManaged != 'D' and node.nodeType != 'D'\" >\n" + " <value type=\"parameter\" name=\"passiveNodeLabel\" matches=\"Router\" result=\"Firewall\" />\n" + " <value type=\"constant\" result=\"192.168.1.4\" />\n" + " </value>\n" + " </assignment>\n" + " <assignment type=\"parameter\" name=\"nodeLabel\">\n" + " <value type=\"field\" name=\"host\" result=\"Switch\" />\n" + " </assignment>\n" + " <assignment type=\"field\" name=\"interface\">\n" + " <value type=\"parameter\" name=\"passiveIpAddr\" matches=\".*(192\\.168\\.1\\.1).*\" result=\"192.168.1.1\" />\n" + " </assignment>\n" + " <assignment type=\"field\" name=\"host\">\n" + " <value type=\"field\" name=\"host\" result=\"www.opennms.org\" />\n" + " </assignment>\n" + " <assignment type=\"field\" name=\"descr\">\n" + " <value type=\"constant\" result=\"a generated event\" />\n" + " </assignment>\n" + " <assignment type=\"field\" name=\"service\">\n" + " <value type=\"parameter\" name=\"passiveServiceName\" result=\"PSV\" />\n" + " </assignment>\n" + " <assignment type=\"parameter\" name=\"passiveStatus\">\n" + " <value type=\"parameter\" name=\"passiveStatus\" matches=\".*(Up|Down).*\" result=\"${1}\" />\n" + " </assignment>\n" + " </mapping>\n" + " </mappings>\n" + " </event-translation-spec>\n" + " </translation>\n" + "</event-translator-configuration>\n" + ""; } }