Author: jmarino
Date: Mon Jul 24 07:59:40 2006
New Revision: 425084

URL: http://svn.apache.org/viewvc?rev=425084&view=rev
Log:
fix testcase race condition

Modified:
    
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManagerTestCase.java

Modified: 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManagerTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManagerTestCase.java?rev=425084&r1=425083&r2=425084&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManagerTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManagerTestCase.java
 Mon Jul 24 07:59:40 2006
@@ -20,16 +20,24 @@
 public class ThreadPoolWorkManagerTestCase extends TestCase {
 
     public void testSchedule() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
         Work work = createMock(Work.class);
         work.run();
-        expectLastCall();
+        expectLastCall().andStubAnswer(new IAnswer() {
+            public Object answer() throws Throwable {
+                latch.countDown();
+                return null;
+            }
+        });
         replay(work);
         ThreadPoolWorkManager mgr = new ThreadPoolWorkManager(1);
         mgr.schedule(work);
+        latch.await();
         verify(work);
     }
 
     public void testListener() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
         WorkListener listener = createStrictMock(WorkListener.class);
         listener.workAccepted(isA(WorkEvent.class));
         listener.workStarted(isA(WorkEvent.class));
@@ -38,10 +46,16 @@
         replay(listener);
         Work work = createMock(Work.class);
         work.run();
-        expectLastCall();
+        expectLastCall().andStubAnswer(new IAnswer() {
+            public Object answer() throws Throwable {
+                latch.countDown();
+                return null;
+            }
+        });
         replay(work);
         ThreadPoolWorkManager mgr = new ThreadPoolWorkManager(1);
         mgr.schedule(work, listener);
+        latch.await();
         verify(work);
     }
 
@@ -75,6 +89,7 @@
     }
 
     public void testErrorListener() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
         WorkListener listener = createStrictMock(WorkListener.class);
         listener.workAccepted(isA(WorkEvent.class));
         listener.workStarted(isA(WorkEvent.class));
@@ -82,10 +97,16 @@
         replay(listener);
         Work work = createMock(Work.class);
         work.run();
-        expectLastCall().andThrow(new RuntimeException());
+        expectLastCall().andStubAnswer(new IAnswer() {
+            public Object answer() throws Throwable {
+                latch.countDown();
+                throw new RuntimeException();
+            }
+        });
         replay(work);
         ThreadPoolWorkManager mgr = new ThreadPoolWorkManager(1);
         mgr.schedule(work, listener);
+        latch.await();
         verify(work);
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to