gossipclienttest.java
来自「JGRoups源码」· Java 代码 · 共 120 行
JAVA
120 行
// $Id: GossipClientTest.java,v 1.2 2006/10/11 14:33:53 belaban Exp $package org.jgroups.tests.stack;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import org.jgroups.Address;import org.jgroups.stack.GossipClient;import org.jgroups.stack.IpAddress;import java.util.List;/** * Tests Gossip protocol primitives with the new GossipRouter. Since 2.2.1, the * GossipRouter is supposed to answer Gossip requests too. * * @author Ovidiu Feodorov <ovidiuf@users.sourceforge.net> * @author Bela Ban * @version $Revision: 1.2 $ * @since 2.2.1 */public class GossipClientTest extends TestCase { GossipClient client; private int port=-1; private long expiryTime=1000; public GossipClientTest(String name) { super(name); } public void setUp() throws Exception { super.setUp(); port=Utilities.startGossipRouter(expiryTime, "127.0.0.1"); client=new GossipClient(new IpAddress("127.0.0.1", port), expiryTime); client.setRefresherEnabled(false); // don't refresh the registrations } public void tearDown() throws Exception { super.tearDown(); client.stop(); Utilities.stopGossipRouter(); } public void testEmptyGET() throws Exception { String groupName="nosuchgroup"; List mbrs=client.getMembers(groupName); assertNotNull(mbrs); assertEquals(0, mbrs.size()); } /** * Registers an address with a group and then sends a GET request for that group. */ public void test_REGISTER_GET() throws Exception { String groupName="TESTGROUP"; int mbrPort=7777; Address mbr=new IpAddress("127.0.0.1", mbrPort); client.register(groupName, mbr); List mbrs=client.getMembers(groupName); assertEquals(1, mbrs.size()); assertEquals(new IpAddress("127.0.0.1", mbrPort), mbrs.get(0)); } public void test_REGISTER_UNREGISTER_GET() throws Exception { String groupName="TESTGROUP"; int mbrPort=7777; Address mbr=new IpAddress("127.0.0.1", mbrPort); client.register(groupName, mbr); List mbrs=client.getMembers(groupName); assertEquals(1, mbrs.size()); assertEquals(new IpAddress("127.0.0.1", mbrPort), mbrs.get(0)); client.unregister(groupName, mbr); mbrs=client.getMembers(groupName); assertNotNull(mbrs); assertEquals(0, mbrs.size()); } /** * Test if a member is removed from group after EXPIRY_TIME ms. */ public void testSweep() throws Exception { String groupName="TESTGROUP"; int mbrPort=7777; Address mbr=new IpAddress("127.0.0.1", mbrPort); client.register(groupName, mbr); List mbrs=client.getMembers(groupName); assertEquals(1, mbrs.size()); assertEquals(new IpAddress("127.0.0.1", mbrPort), mbrs.get(0)); // because the sweep is ran at fixed expiryTime intervals, if // an entry was added immediately after a sweep run, it actually // spends almost 2*expiryTime in cache. Thread.sleep(2 * expiryTime); // send a second GET after more than EXPIRY_TIME ms mbrs=client.getMembers(groupName); assertTrue(mbrs == null || mbrs.size() == 0); } public static Test suite() { return new TestSuite(GossipClientTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); System.exit(0); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?