1 21 package net.sf.hajdbc.balancer; 22 23 import net.sf.hajdbc.Balancer; 24 25 import org.easymock.EasyMock; 26 import org.testng.annotations.Test; 27 28 32 @Test 33 public class TestBalancerFactory 34 { 35 public void testSerialize() 36 { 37 this.assertBalancer(new SimpleBalancer(), "simple"); 38 this.assertBalancer(new RandomBalancer(), "random"); 39 this.assertBalancer(new RoundRobinBalancer(), "round-robin"); 40 this.assertBalancer(new LoadBalancer(), "load"); 41 42 try 43 { 44 String balancer = BalancerFactory.serialize(EasyMock.createMock(Balancer.class)); 45 46 assert false : balancer; 47 } 48 catch (IllegalArgumentException e) 49 { 50 assert true; 51 } 52 } 53 54 private void assertBalancer(Balancer balancer, String id) 55 { 56 String name = BalancerFactory.serialize(balancer); 57 58 assert name.equals(id) : name; 59 } 60 61 public void testDeserialize() 62 { 63 this.assertBalancer("simple", SimpleBalancer.class); 64 this.assertBalancer("random", RandomBalancer.class); 65 this.assertBalancer("round-robin", RoundRobinBalancer.class); 66 this.assertBalancer("load", LoadBalancer.class); 67 68 try 69 { 70 Balancer balancer = BalancerFactory.deserialize("invalid"); 71 72 assert false : balancer.getClass().getName(); 73 } 74 catch (Exception e) 75 { 76 assert true; 77 } 78 } 79 80 private void assertBalancer(String id, Class <? extends Balancer> balancerClass) 81 { 82 try 83 { 84 Balancer balancer = BalancerFactory.deserialize("load"); 85 86 assert LoadBalancer.class.isInstance(balancer); 87 } 88 catch (Exception e) 89 { 90 assert false : e; 91 } 92 } 93 } 94 | Popular Tags |