package org.jgroups.tests; import org.jgroups.Global; import org.jgroups.ViewId; import org.jgroups.util.Util; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.net.UnknownHostException; import java.util.HashMap; import java.util.Map; /** * Author: Bela Ban */ @Test(groups=Global.FUNCTIONAL) public class ViewIdTest { private ViewId v1, v2, v3, v4; @BeforeClass void setUp() throws UnknownHostException { v1=new ViewId(Util.createRandomAddress("A"), 22); v2=new ViewId(Util.createRandomAddress("B"), 21); v3=v1.copy(); v4=new ViewId(Util.createRandomAddress("C"), 22); } public void test0() { assert v1.equals(v2) == false; } public void test1() { assert v1.equals(v3) : "v1 and v3 should be the same view"; } public void testCopy() { ViewId tmp=v1.copy(); assert v1.equals(tmp); } public void testCompareTo() { assert v1.compareTo(v3) == 0; } public void testCompareTo2() { assert v1.compareTo(v2) > 0; } public void testCompareTo3() { assert v2.compareTo(v1) < 0; } public void testCompareToWithSameID() { int expected=v4.getCreator().compareTo(v1.getCreator()); assert v4.compareTo(v1) == expected; // we're comparing IDs (same) and then creators assert v4.compareToIDs(v1) == 0; // we're only comparing IDs } public void testHashCode() { Map<ViewId,Integer> map=new HashMap<ViewId,Integer>(); map.put(v1, 1); assert map.size() == 1; map.put(v2, 2); assert map.size() == 2; map.put(v3, 3); assert map.size() == 2; // replaces v1 map.put(v4, 4); System.out.println("map = " + map); assert map.size() == 3; // v1 and v3 are the same assert map.get(v1) == 3; assert map.get(v2) == 2; assert map.get(v3) == 3; assert map.get(v4) == 4; } }