| 1 21 package net.sf.hajdbc.balancer; 22 23 import java.util.Arrays ; 24 25 import org.testng.annotations.Test; 26 27 import net.sf.hajdbc.Balancer; 28 import net.sf.hajdbc.MockDatabase; 29 30 34 @Test 35 public class TestRandomBalancer extends AbstractTestBalancer 36 { 37 protected Balancer createBalancer() 38 { 39 return new RandomBalancer(); 40 } 41 42 protected void testNext(Balancer balancer) 43 { 44 int count = 100; 45 int[] results = new int[3]; 46 47 Arrays.fill(results, 0); 48 49 balancer.add(new MockDatabase("0", 0)); 50 51 for (int i = 0; i < count; ++i) 52 { 53 results[balancer.next().getWeight()] += 1; 54 } 55 56 assert results[0] == count : results[0]; 57 assert results[1] == 0 : results[1]; 58 assert results[2] == 0 : results[2]; 59 60 balancer.add(new MockDatabase("1", 1)); 61 62 Arrays.fill(results, 0); 63 64 for (int i = 0; i < count; ++i) 65 { 66 results[balancer.next().getWeight()] += 1; 67 } 68 69 assert results[0] == 0 : results[0]; 70 assert results[1] == count : results[1]; 71 assert results[2] == 0 : results[2]; 72 73 balancer.add(new MockDatabase("2", 2)); 74 75 Arrays.fill(results, 0); 76 77 for (int i = 0; i < count; ++i) 78 { 79 results[balancer.next().getWeight()] += 1; 80 } 81 82 assert results[0] == 0 : results[0]; 83 assert results[1] < 50 : results[1]; 84 assert results[2] > 50 : results[2]; 85 } 86 } 87 | Popular Tags |