1 package org.sapia.ubik.rmi.replication; 2 3 import junit.framework.TestCase; 4 5 import org.sapia.ubik.net.ServerAddress; 6 import org.sapia.ubik.net.TCPAddress; 7 8 import java.util.HashSet ; 9 import java.util.Set ; 10 11 12 20 public class ReplicationStrategyTest extends TestCase { 21 public ReplicationStrategyTest(String arg0) { 22 super(arg0); 23 } 24 25 public void testNoTargets() { 26 TCPAddress addr1 = new TCPAddress("test", 1); 27 TCPAddress addr2 = new TCPAddress("test", 2); 28 TCPAddress addr3 = new TCPAddress("test", 3); 29 TCPAddress addr4 = new TCPAddress("test", 4); 30 31 Set siblings = new HashSet (); 32 siblings.add(addr1); 33 siblings.add(addr2); 34 siblings.add(addr3); 35 siblings.add(addr4); 36 37 Set visited = new HashSet (); 38 ReplicationStrategy st = new ReplicationStrategy(visited, null, siblings); 39 ServerAddress next; 40 41 next = st.selectNextSibling(); 42 super.assertTrue(next != null); 43 super.assertEquals(1, visited.size()); 44 45 next = st.selectNextSibling(); 46 super.assertTrue(next != null); 47 super.assertEquals(2, visited.size()); 48 49 next = st.selectNextSibling(); 50 super.assertTrue(next != null); 51 super.assertEquals(3, visited.size()); 52 53 next = st.selectNextSibling(); 54 super.assertTrue(next != null); 55 super.assertEquals(4, visited.size()); 56 57 next = st.selectNextSibling(); 58 super.assertTrue(next == null); 59 super.assertEquals(4, visited.size()); 60 } 61 62 public void testTargets() { 63 TCPAddress addr1 = new TCPAddress("test", 1); 64 TCPAddress addr2 = new TCPAddress("test", 2); 65 TCPAddress addr3 = new TCPAddress("test", 3); 66 TCPAddress addr4 = new TCPAddress("test", 4); 67 68 Set siblings = new HashSet (); 69 siblings.add(addr1); 70 siblings.add(addr2); 71 siblings.add(addr3); 72 siblings.add(addr4); 73 74 Set targets = new HashSet (); 75 targets.add(addr2); 76 targets.add(addr4); 77 78 Set visited = new HashSet (); 79 ReplicationStrategy st = new ReplicationStrategy(visited, targets, 80 siblings); 81 ServerAddress next; 82 83 next = st.selectNextSibling(); 84 super.assertTrue(next != null); 85 super.assertTrue(next.equals(addr2) || next.equals(addr4)); 86 super.assertEquals(1, visited.size()); 87 88 next = st.selectNextSibling(); 89 super.assertTrue(next != null); 90 super.assertTrue(next.equals(addr2) || next.equals(addr4)); 91 super.assertEquals(2, visited.size()); 92 93 next = st.selectNextSibling(); 94 super.assertTrue(next == null); 95 super.assertEquals(2, visited.size()); 96 } 97 } 98 | Popular Tags |