| 1 9 package org.jboss.portal.test.common; 10 11 import java.io.PrintStream ; 12 13 import junit.framework.TestCase; 14 15 import org.jboss.portal.common.concurrent.Valve; 16 17 import EDU.oswego.cs.dl.util.concurrent.CyclicBarrier; 18 19 23 public class ValveTestCase extends TestCase 24 { 25 26 public ValveTestCase(String key) 27 { 28 super(key); 29 } 30 31 public static final PrintStream out = System.out; 32 33 public void testTransitions() 34 { 35 Valve valve = new Valve(); 36 assertEquals(Valve.CLOSED, valve.getState()); 37 assertFalse(valve.beforeInvocation()); 38 try 39 { 40 valve.closing(10); 41 fail("IllegalStateException expected"); 42 } 43 catch (IllegalStateException expected) 44 { 45 } 46 try 47 { 48 valve.closing(); 49 fail("IllegalStateException expected"); 50 } 51 catch (IllegalStateException expected) 52 { 53 } 54 try 55 { 56 valve.closed(); 57 fail("IllegalStateException expected"); 58 } 59 catch (IllegalStateException expected) 60 { 61 } 62 63 valve.open(); 65 try 66 { 67 assertTrue(valve.beforeInvocation()); 68 } 69 finally 70 { 71 valve.afterInvocation(); 72 } 73 try 74 { 75 valve.open(); 76 fail("IllegalStateException expected"); 77 } 78 catch (IllegalStateException e) 79 { 80 } 81 try 82 { 83 valve.closed(); 84 fail("IllegalStateException expected"); 85 } 86 catch (IllegalStateException e) 87 { 88 } 89 90 91 valve.closing(); 93 assertEquals(Valve.CLOSING, valve.getState()); 94 assertFalse(valve.beforeInvocation()); 95 try 96 { 97 valve.open(); 98 fail("IllegalStateException expected"); 99 } 100 catch (IllegalStateException e) 101 { 102 } 103 valve.closing(); 104 105 valve.closed(); 107 assertEquals(Valve.CLOSED, valve.getState()); 108 } 109 110 public void testTimeOut() throws Exception  111 { 112 final Valve valve = new Valve(); 113 final CyclicBarrier barrier = new CyclicBarrier(2); 114 115 Thread thread = new Thread () 116 { 117 public void run() 118 { 119 try 120 { 121 assertTrue(valve.beforeInvocation()); 122 123 barrier.barrier(); 125 126 barrier.barrier(); 128 } 129 catch (InterruptedException ignore) 130 { 131 } 132 finally 133 { 134 valve.afterInvocation(); 135 try 136 { 137 barrier.barrier(); 139 } 140 catch (InterruptedException ignore) 141 { 142 } 143 } 144 } 145 }; 146 147 valve.open(); 149 thread.start(); 150 151 barrier.barrier(); 153 154 assertFalse(valve.closing(100)); 156 157 assertEquals(Valve.CLOSING, valve.getState()); 159 160 barrier.barrier(); 162 163 barrier.barrier(); 165 166 valve.closing(); 168 assertEquals(Valve.CLOSING, valve.getState()); 169 170 valve.closed(); 172 assertEquals(Valve.CLOSED, valve.getState()); 173 } 174 175 } 176 | Popular Tags |