votingadaptertest.java
来自「JGRoups源码」· Java 代码 · 共 139 行
JAVA
139 行
package org.jgroups.blocks;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import org.jgroups.JChannel;public class VotingAdapterTest extends TestCase { public static final String SERVER_PROTOCOL_STACK = "" + "UDP(mcast_addr=228.3.11.76;mcast_port=12345;ip_ttl=1;" + "mcast_send_buf_size=150000;mcast_recv_buf_size=80000;down_thread=false)"// + "JMS(topicName=topic/testTopic;cf=UILConnectionFactory;"// + "jndiCtx=org.jnp.interfaces.NamingContextFactory;"// + "providerURL=localhost;ttl=10000)" + ":PING(timeout=500;num_initial_members=1;down_thread=false;up_thread=false)" + ":FD(down_thread=false;up_thread=false)" + ":VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false)" + ":pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;down_thread=false)" + ":FRAG(frag_size=4096;down_thread=false)" + ":UNICAST(timeout=5000)" + ":pbcast.STABLE(desired_avg_gossip=200;down_thread=false;up_thread=false)" + ":pbcast.GMS(join_timeout=5000;join_retry_timeout=1000;" + "shun=false;print_local_addr=false;down_thread=true;up_thread=true)" //+ ":SPEED_LIMIT(down_queue_limit=10)" + ":pbcast.STATE_TRANSFER(down_thread=false)" ; public VotingAdapterTest(String testName) { super(testName); } public static Test suite() { return new TestSuite(VotingAdapterTest.class); } private JChannel channel1; private JChannel channel2; protected VotingAdapter adapter1; protected VotingAdapter adapter2; protected TestVoteChannelListener listener1; protected TestVoteChannelListener listener2; protected TestVoteChannelListener listener3; protected TestVoteChannelListener listener4; protected static boolean logConfigured; public void setUp() throws Exception { listener1 = new TestVoteChannelListener(true); listener2 = new TestVoteChannelListener(true); listener3 = new TestVoteChannelListener(false); listener4 = new TestVoteChannelListener(false); channel1 = new JChannel(SERVER_PROTOCOL_STACK); adapter1 = new VotingAdapter(channel1); channel1.connect("voting"); // give some time for the channel to become a coordinator try { Thread.sleep(1000); } catch(Exception ex) { } channel2 = new JChannel(SERVER_PROTOCOL_STACK); adapter2 = new VotingAdapter(channel2); channel2.connect("voting"); try { Thread.sleep(1000); } catch (InterruptedException ex) { } } public void tearDown() throws Exception { channel2.close(); try { Thread.sleep(1000); } catch (InterruptedException ex) { } channel1.close(); } public void testVoteAll() throws Exception { adapter1.addVoteListener(listener1); adapter2.addVoteListener(listener2); boolean voting1 = adapter1.vote("object1", VotingAdapter.VOTE_ALL, 1000); assertTrue("Result of voting1 should be 'true'.", voting1); adapter1.addVoteListener(listener3); boolean voting2 = adapter1.vote("object2", VotingAdapter.VOTE_ALL, 1000); assertTrue("Result of voting2 should be 'false'.", !voting2); } /** * This class always vote according to the parameter passed on the * object creation. */ public static class TestVoteChannelListener implements VotingListener { private boolean vote; public TestVoteChannelListener(boolean vote) { this.vote = vote; } public boolean vote(Object decree) { return vote; } } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?