mocknetworktest.java

来自「opennms得相关源码 请大家看看」· Java 代码 · 共 742 行 · 第 1/2 页

JAVA
742
字号
//// This file is part of the OpenNMS(R) Application.//// OpenNMS(R) is Copyright (C) 2004-2005 The OpenNMS Group, Inc.  All rights reserved.// OpenNMS(R) is a derivative work, containing both original code, included code and modified// code that was published under the GNU General Public License. Copyrights for modified // and included code are below.//// OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.//// Original code base Copyright (C) 1999-2001 Oculan Corp.  All rights reserved.//// This program 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 2 of the License, or// (at your option) any later version.//// This program 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 this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//// For more information contact:// OpenNMS Licensing       <license@opennms.org>//     http://www.opennms.org///     http://www.opennms.com///package org.opennms.netmgt.mock;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Collection;import java.util.Enumeration;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import junit.framework.TestCase;import org.opennms.netmgt.EventConstants;import org.opennms.netmgt.config.PollOutagesConfig;import org.opennms.netmgt.config.PollerConfig;import org.opennms.netmgt.config.poller.Package;import org.opennms.netmgt.config.poller.Service;import org.opennms.netmgt.eventd.EventListener;import org.opennms.netmgt.poller.IfKey;import org.opennms.netmgt.poller.QueryManager;import org.opennms.netmgt.poller.monitors.IPv4NetworkInterface;import org.opennms.netmgt.poller.monitors.ServiceMonitor;import org.opennms.netmgt.xml.event.Event;/** * Test the MockNetwork and related classes *  * @author brozow */public class MockNetworkTest extends TestCase {    static class ElementCounter implements MockVisitor {        private int containerCount = 0;        private int elementCount = 0;        private int interfaceCount = 0;        private int networkCount = 0;        private int nodeCount = 0;        private int serviceCount = 0;        public int getContainerCount() {            return containerCount;        }        public int getElementCount() {            return elementCount;        }        public int getInterfaceCount() {            return interfaceCount;        }        public int getNetworkCount() {            return networkCount;        }        public int getNodeCount() {            return nodeCount;        }        public int getServiceCount() {            return serviceCount;        }        public void visitContainer(MockContainer c) {            containerCount++;        }        public void visitElement(MockElement e) {            elementCount++;        }        public void visitInterface(MockInterface i) {            interfaceCount++;        }        public void visitNetwork(MockNetwork n) {            networkCount++;        }        public void visitNode(MockNode n) {            nodeCount++;        }        public void visitService(MockService s) {            serviceCount++;        }    }    static class MockNetworkInterface extends IPv4NetworkInterface {        public MockNetworkInterface(String addr) throws UnknownHostException {            super(InetAddress.getByName(addr));        }    }    class StatusChecker extends MockVisitorAdapter {        int m_expectedStatus;        int m_serviceCount = 0;        public StatusChecker(int status) {            m_expectedStatus = status;        }        public int getServiceCount() {            return m_serviceCount;        }        public void resetServiceCount() {            m_serviceCount = 0;        }        public void setExpectedStatus(int status) {            m_expectedStatus = status;        }        public void visitService(MockService service) {            try {                m_serviceCount++;                IPv4NetworkInterface addr = new MockNetworkInterface(service.getInterface().getIpAddr());                ServiceMonitor monitor = m_pollerConfig.getServiceMonitor(service.getName());                int pollResult = monitor.poll(addr, new HashMap(), m_pollerConfig.getPackage("TestPackage"));                assertEquals(m_expectedStatus, pollResult);            } catch (UnknownHostException e) {                throw new RuntimeException("Unknownhost ", e);            }        }    }    private StatusChecker m_downChecker;    private MockNetwork m_network;    private StatusChecker m_upChecker;    private MockPollerConfig m_pollerConfig;    private MockEventIpcManager m_eventMgr;    private void anticipateServiceEvents(final EventAnticipator anticipator, MockElement element, final String uei) {        MockVisitor eventSetter = new MockVisitorAdapter() {            public void visitService(MockService svc) {                Event event = MockUtil.createServiceEvent("Test", uei, svc);                anticipator.anticipateEvent(event);            }        };        element.visit(eventSetter);    }    protected void setUp() throws Exception {        m_network = new MockNetwork();        m_network.setCriticalService("ICMP");        m_network.addNode(1, "Router");        m_network.addInterface("192.168.1.1");        m_network.addService("ICMP");        m_network.addService("SMTP");        m_network.addInterface("192.168.1.2");        m_network.addService("ICMP");        m_network.addService("SMTP");        m_network.addNode(2, "Server");        m_network.addInterface("192.168.1.3");        m_network.addService("ICMP");        m_network.addService("HTTP");        m_network.addInterface("192.168.1.2");                m_eventMgr = new MockEventIpcManager();        m_pollerConfig = new MockPollerConfig();        m_pollerConfig.addPackage("TestPackage");        m_pollerConfig.addDowntime(1000L, 0L, -1L, false);        m_pollerConfig.setDefaultPollInterval(1000L);        m_pollerConfig.populatePackage(m_network);        m_pollerConfig.setPollInterval("ICMP", 500L);                m_upChecker = new StatusChecker(ServiceMonitor.SERVICE_AVAILABLE);        m_downChecker = new StatusChecker(ServiceMonitor.SERVICE_UNAVAILABLE);    }    protected void tearDown() throws Exception {    }    public void testCreateInterfaces() {        MockNode router = m_network.getNode(1);        MockInterface iface = m_network.getInterface(1, "192.168.1.1");        assertEquals("192.168.1.1", iface.getIpAddr());        assertEquals(router, iface.getNode());        MockInterface iface2 = m_network.getInterface(1, "192.168.1.2");        assertEquals("192.168.1.2", iface2.getIpAddr());        assertEquals(router, iface2.getNode());        MockNode server = m_network.getNode(2);        MockInterface iface3 = m_network.getInterface(2, "192.168.1.3");        assertEquals(server.getNodeId(), iface3.getNode().getNodeId());        assertEquals(server, iface3.getNode());    }    public void testCreateNodes() {        MockNode router = m_network.getNode(1);        assertEquals(1, router.getNodeId());        assertEquals("Router", router.getLabel());        MockNode server = m_network.getNode(2);        assertEquals(2, server.getNodeId());        assertEquals("Server", server.getLabel());    }    public void testCreateServices() {        MockNode router = m_network.getNode(1);        MockNode server = m_network.getNode(2);        MockInterface rtrIface = m_network.getInterface(1, "192.168.1.2");        MockInterface svrIface = m_network.getInterface(2, "192.168.1.3");        MockService icmpSvc = m_network.getService(1, "192.168.1.2", "ICMP");        MockService icmpSvc2 = m_network.getService(1, "192.168.1.1", "ICMP");        MockService httpSvc = m_network.getService(2, "192.168.1.3", "HTTP");        assertEquals("ICMP", icmpSvc.getName());        assertEquals(rtrIface, icmpSvc.getInterface());        assertEquals("HTTP", httpSvc.getName());        assertEquals(svrIface, httpSvc.getInterface());        assertTrue(icmpSvc.getId() == icmpSvc2.getId());        assertFalse(icmpSvc.getId() == httpSvc.getId());    }    public void testEventListeners() {        Event sentEvent = MockUtil.createEvent("Test", EventConstants.NODE_GAINED_SERVICE_EVENT_UEI, 1, "192.168.1.1", "NEW");        Event sentEvent2 = MockUtil.createEvent("Test", EventConstants.NODE_REGAINED_SERVICE_EVENT_UEI, 1, "192.168.1.1", "NEW");        class MockListener implements EventListener {            private Event receivedEvent;            public String getName() {                return "MockListener";            }            public Event getReceivedEvent() {                return receivedEvent;            }            public void onEvent(Event event) {                System.err.println("onEvent: " + event.getUei());                receivedEvent = event;            }            public void reset() {                receivedEvent = null;            }        }        ;        MockListener listener = new MockListener();        m_eventMgr.addEventListener(listener, EventConstants.NODE_GAINED_SERVICE_EVENT_UEI);        m_eventMgr.sendEventToListeners(sentEvent);        assertTrue(MockUtil.eventsMatch(sentEvent, listener.getReceivedEvent()));        listener.reset();        m_eventMgr.sendEventToListeners(sentEvent2);        assertFalse(MockUtil.eventsMatch(sentEvent2, listener.getReceivedEvent()));    }    public void testEventMgr() {        assertNotNull(m_eventMgr);    }    public void testEventProcessing() {        testEventProcessing(m_network.getService(2, "192.168.1.3", "ICMP"));        testEventProcessing(m_network.getNode(2));        testEventProcessing(m_network.getInterface(1, "192.168.1.2"));    }    /**     * @param element     */    private void testEventProcessing(MockElement element) {        m_pollerConfig.setNodeOutageProcessingEnabled(false);        EventAnticipator anticipator = m_eventMgr.getEventAnticipator();        String nlsUei = EventConstants.NODE_LOST_SERVICE_EVENT_UEI;        String nrsUei = EventConstants.NODE_REGAINED_SERVICE_EVENT_UEI;        anticipateServiceEvents(anticipator, element, nlsUei);        element.bringDown();        assertFalse(0 == anticipator.waitForAnticipated(0).size());        anticipator.reset();        anticipateServiceEvents(anticipator, element, nrsUei);        element.bringUp();        assertFalse(0 == anticipator.waitForAnticipated(0).size());        anticipator.reset();        anticipateServiceEvents(anticipator, element, nlsUei);        element.bringDown();        MockVisitor lostSvcSender = new MockVisitorAdapter() {            public void visitService(MockService svc) {                Event event = MockUtil.createEvent("Test", EventConstants.NODE_LOST_SERVICE_EVENT_UEI, svc.getNodeId(), svc.getIpAddr(), svc.getName());                m_eventMgr.sendNow(event);            }        };        element.visit(lostSvcSender);        assertEquals(0, anticipator.waitForAnticipated(0).size());        anticipator.reset();        anticipateServiceEvents(anticipator, element, nrsUei);        element.bringUp();        MockVisitor gainedSvcSender = new MockVisitorAdapter() {            public void visitService(MockService svc) {                Event event = MockUtil.createEvent("Test", EventConstants.NODE_REGAINED_SERVICE_EVENT_UEI, svc.getNodeId(), svc.getIpAddr(), svc.getName());                m_eventMgr.sendNow(event);            }        };        element.visit(gainedSvcSender);        m_eventMgr.finishProcessingEvents();        assertEquals(0, anticipator.waitForAnticipated(0).size());        assertEquals(0, anticipator.unanticipatedEvents().size());        MockNode node = m_network.getNode(1);        Event nodeEvent = MockUtil.createNodeDownEvent("Test", node);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?