ackcollectortest.java

来自「JGRoups源码」· Java 代码 · 共 210 行

JAVA
210
字号
// $Id: AckCollectorTest.java,v 1.5 2006/05/16 11:14:28 belaban Exp $package org.jgroups.tests;import junit.framework.TestCase;import org.jgroups.util.AckCollector;import org.jgroups.util.Util;import org.jgroups.TimeoutException;import org.jgroups.Address;import org.jgroups.stack.IpAddress;import java.util.ArrayList;import java.util.List;import java.net.UnknownHostException;public class AckCollectorTest extends TestCase {    List l=new ArrayList(5);    AckCollector ac;    private List new_list=new ArrayList(3);    public AckCollectorTest(String name) {        super(name);    }    public void setUp() throws Exception {        super.setUp();        l.add("one");        l.add("two");        l.add("three");        l.add("four");        l.add("five");        ac=new AckCollector(null, l);        new_list.add("six");        new_list.add("seven");        new_list.add("eight");    }    public void tearDown() throws Exception {        super.tearDown();        l.clear();        new_list.clear();    }    public void testConstructor() {        System.out.println("AckCollector is " + ac);        assertEquals(5, ac.size());    }    public void testWaitForAllAcksNoTimeout() {        new Thread() {            public void run() {                ac.ack("one");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("two");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("three");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("four");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("five");                System.out.println("AckCollector: " + ac);            }        }.start();        ac.waitForAllAcks();        assertEquals(0, ac.size());    }    public void testWaitForAllAcksWithTimeoutException() {        try {            ac.waitForAllAcks(200);            fail("we should get a timeout exception here");        }        catch(TimeoutException e) {            System.out.println("received timeout exception, as expected");        }    }    public void testWaitForAllAcksWithTimeout() {        new Thread() {            public void run() {                ac.ack("one");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("two");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("three");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("four");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("five");                System.out.println("AckCollector: " + ac);            }        }.start();        try {            ac.waitForAllAcks(1000);            assertTrue("we should not get a timeout exception here", true);        }        catch(TimeoutException e) {            fail("we should not get a timeout exception here");        }        assertEquals(0, ac.size());    }    public void testWaitForAllAcksWithTimeoutException2() {        new Thread() {            public void run() {                ac.ack("one");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("two");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("three");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("four");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("five");                System.out.println("AckCollector: " + ac);            }        }.start();        try {            ac.waitForAllAcks(300);            fail("we should get a timeout exception here");        }        catch(TimeoutException e) {            assertTrue("we should get a timeout exception here", true);        }    }    public void testReset() {        new Thread() {            public void run() {                Util.sleep(500);                System.out.println("resetting AckCollector");                ac.reset(null, new_list);                System.out.println("reset AckCollector: " + ac);            }        }.start();        System.out.println("initial AckCollector: " + ac);        try {            ac.waitForAllAcks(1000);            fail("needs to throw TimeoutException");        }        catch(TimeoutException e) {            assertTrue("expected TimeoutException", e != null);        }        System.out.println("new AckCollector: " + ac);    }    public void testReset2() throws TimeoutException {        new Thread() {            public void run() {                Util.sleep(500);                System.out.println("resetting AckCollector");                ac.reset(null, new_list);                System.out.println("reset AckCollector: " + ac);                Util.sleep(100);                ac.ack("six");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("seven");                System.out.println("AckCollector: " + ac);                Util.sleep(100);                ac.ack("eight");                System.out.println("AckCollector: " + ac);            }        }.start();        System.out.println("initial AckCollector: " + ac);        ac.waitForAllAcks(2000);        System.out.println("new AckCollector: " + ac);    }    public void testNullList() throws TimeoutException {        AckCollector coll=new AckCollector();        coll.waitForAllAcks(1000);    }    public void testOneList() throws TimeoutException, UnknownHostException {        List tmp=new ArrayList();        Address addr=new IpAddress("127.0.0.1", 5555);        tmp.add(addr);        AckCollector coll=new AckCollector(null, tmp);        coll.ack(addr);        coll.waitForAllAcks(1000);    }    public static void main(String[] args) {        String[] testCaseName={AckCollectorTest.class.getName()};        junit.textui.TestRunner.main(testCaseName);    }}

⌨️ 快捷键说明

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