1 package com.ubermq.kernel.chooser; 2 3 import com.ubermq.kernel.*; 4 import junit.framework.*; 5 import java.util.*; 6 7 10 public class ChooserTestCase 11 extends TestCase 12 { 13 public static TestSuite suite() { 14 return new TestSuite(ChooserTestCase.class); 15 } 16 17 public ChooserTestCase(String sz) { 18 super(sz); 19 } 20 21 public void testChoosers() 22 throws Exception 23 { 24 final int N=15; 25 26 List l = new ArrayList(); 28 Set s = new HashSet(); 29 for (int i = 0; i < N; i++) 30 { 31 l.add(new Integer (i)); 32 s.add(new Integer (i)); 33 } 34 35 Chooser c = new RandomChooser(); 37 int randomBucket[] = new int[N]; 38 for (int i = 0; i < 10 * N; i++) 39 { 40 Integer chosen = (Integer )c.choose(l); 41 randomBucket[chosen.intValue()]++; 42 43 chosen = (Integer )c.choose(s); 44 randomBucket[chosen.intValue()]++; 45 } 46 for (int i = 0; i < N; i++) 47 { 48 Assert.assertTrue(randomBucket[i] > 0); 49 } 50 51 c = new SequentialChooser(); 53 for (int i = 0; i < N; i++) 54 { 55 Assert.assertEquals(i, ((Integer )c.choose(l)).intValue()); 56 } 57 Assert.assertNull(c.choose(l)); 58 try { 59 c.choose(s); 60 Assert.assertTrue(false); 61 } catch(IllegalArgumentException iae) { 62 Assert.assertTrue(true); 63 } catch(RuntimeException re) { 64 Assert.assertTrue(false); 65 } 66 67 try { 68 c.choose(new ArrayList()); 69 Assert.assertTrue(false); 70 } catch(IllegalStateException iae) { 71 Assert.assertTrue(true); 72 } catch(RuntimeException re) { 73 Assert.assertTrue(false); 74 } 75 76 c.reset(); 77 Assert.assertNull(c.choose(new ArrayList())); 78 79 c = new RoundRobinChooser(); 81 for (int i = 0; i < 10 * N; i++) 82 { 83 Assert.assertEquals(i % N, ((Integer )c.choose(l)).intValue()); 84 } 85 } 86 87 } 88 | Popular Tags |