package org.jgroups.tests; import org.jgroups.Address; import org.jgroups.Global; import org.jgroups.util.Rsp; import org.jgroups.util.RspList; import org.jgroups.util.Util; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.util.*; @Test(groups=Global.FUNCTIONAL,singleThreaded=true) public class RspListTest { RspList<Object> rl; Address a, b, c, d, e; Rsp rsp1, rsp2, rsp3, rsp4, rsp5; @BeforeMethod void setUp() throws Exception { rl=new RspList<>(); a=Util.createRandomAddress("A"); b=Util.createRandomAddress("B"); c=Util.createRandomAddress("C"); d=Util.createRandomAddress("D"); e=Util.createRandomAddress("E"); rsp1=new Rsp(a); rsp2=new Rsp(b); rsp2.setSuspected(); rsp3=new Rsp("hello world"); rsp4=new Rsp(Boolean.TRUE); rsp5=new Rsp(e); rsp5.setSuspected(); rl.put(a, rsp1); rl.put(b, rsp2); rl.put(c, rsp3); rl.put(d, rsp4); rl.put(e, rsp5); } @AfterMethod protected void tearDown() throws Exception { rl.clear(); } public void testConstructor() { RspList tmp=new RspList() .addRsp(a, a).addRsp(b, b).addRsp(c, "hello world"); System.out.println("tmp = " + tmp); Assert.assertEquals(3, tmp.size()); assert tmp.containsKey(a); assert tmp.containsKey(b); assert tmp.containsKey(c); assert tmp.containsValue(rsp1); assert tmp.containsValue(rsp2); assert tmp.containsValue(rsp3); } public void testIsEmpty() { RspList tmp=new RspList(); assert tmp.isEmpty(); tmp.addRsp(a, rsp1); assert !(tmp.isEmpty()); } public void testContainsKey() { assert rl.containsKey(a); assert rl.containsKey(c); } public void testContainsValue() { assert rl.containsValue(rsp1); assert rl.containsValue(rsp3); } public void testGet() { Rsp rsp=rl.get(a); Assert.assertEquals(rsp, rsp1); rsp=rl.get(c); Assert.assertEquals(rsp, rsp3); } public void testPut() { Rsp rsp, tmp; tmp=new Rsp(Util.createRandomAddress()); tmp.setSuspected(); rsp=rl.put(Util.createRandomAddress(), tmp); assert rsp == null; rsp=rl.put(b, rsp2); Assert.assertEquals(rsp, rsp2); Assert.assertEquals(6, rl.size()); } public void testRemove() { Rsp rsp; rsp=rl.remove(Util.createRandomAddress()); assert rsp == null; rsp=rl.remove(b); Assert.assertEquals(rsp, rsp2); Assert.assertEquals(4, rl.size()); } public void testClear() { rl.clear(); Assert.assertEquals(0, rl.size()); } public static void testKeySet() { RspList tmp=new RspList(); Set keys=tmp.keySet(); assert keys != null; Assert.assertEquals(0, keys.size()); } public void testKeySet2() { Set keys=rl.keySet(); assert keys != null; Assert.assertEquals(rl.size(), keys.size()); } public void testAddRsp() { Address tmp=Util.createRandomAddress(); rl.addRsp(tmp, 322649); Assert.assertEquals(6, rl.size()); Rsp rsp=rl.get(tmp); assert rsp != null; assert rsp.wasReceived(); assert !(rsp.wasSuspected()); Assert.assertEquals(322649, rsp.getValue()); } public void testAddRsp2() { rl.addRsp(a, 322649); Assert.assertEquals(5, rl.size()); Rsp rsp=rl.get(a); assert rsp != null; assert rsp.wasReceived(); assert !(rsp.wasSuspected()); Assert.assertEquals(322649, rsp.getValue()); } public void testNumSuspectedMembers() { Assert.assertEquals(2, rl.numSuspectedMembers()); } public void testGetFirst() { Object obj=rl.getFirst(); System.out.println("-- first (non-null) value is " + obj); assert obj != null; } public void testGetResults() { List v=rl.getResults(); assert v != null; Assert.assertEquals(5, v.size()); } public void testElementAt() { Set<Address> s=new HashSet<>(); s.addAll(rl.keySet()); System.out.println("-- set is " + s); Assert.assertEquals(rl.size(), s.size()); } }