Author: berndf
Date: Sun Mar  7 11:58:36 2010
New Revision: 919975

URL: http://svn.apache.org/viewvc?rev=919975&view=rev
Log:
no longer need to wait arbitrary time for recorded stanza, add feature in 
TestSessionContext to block and return or fail after some time

Modified:
    
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
    
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java

Modified: 
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java?rev=919975&r1=919974&r2=919975&view=diff
==============================================================================
--- 
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
 (original)
+++ 
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringStanzaRelayTestCase.java
 Sun Mar  7 11:58:36 2010
@@ -72,8 +72,7 @@
 
         try {
             stanzaRelay.relay(toEntity, stanza, new IgnoreFailureStrategy());
-            try { Thread.sleep(60); } catch (InterruptedException e) { ; } // 
eventually, this gets delivered
-            Stanza recordedStanza = sessionContext.getNextRecordedResponse();
+            Stanza recordedStanza = 
sessionContext.getNextRecordedResponse(1000);
             assertNotNull("stanza delivered", recordedStanza);
             assertEquals("Hello", 
recordedStanza.getSingleInnerElementsNamed("body").getSingleInnerText().getText());
         } catch (DeliveryException e) {
@@ -93,8 +92,7 @@
 
         try {
             stanzaRelay.relay(toEntity, stanza, new IgnoreFailureStrategy());
-            try { Thread.sleep(60); } catch (InterruptedException e) { ; } // 
eventually, this gets delivered
-            Stanza recordedStanza = sessionContext.getNextRecordedResponse();
+            Stanza recordedStanza = 
sessionContext.getNextRecordedResponse(1000);
             assertNull("stanza not delivered to unbound", recordedStanza);
         } catch (DeliveryException e) {
             throw e;

Modified: 
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java
URL: 
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java?rev=919975&r1=919974&r2=919975&view=diff
==============================================================================
--- 
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java
 (original)
+++ 
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java
 Sun Mar  7 11:58:36 2010
@@ -33,13 +33,15 @@
 import java.util.LinkedList;
 import java.util.Queue;
 import java.util.Iterator;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
 
 /**
  * makes response available for testing
  */
 public class TestSessionContext extends AbstractSessionContext implements 
StanzaWriter {
 
-    private Queue<Stanza> recordedResponses = new LinkedList<Stanza>();
+    private LinkedBlockingQueue<Stanza> recordedResponses = new 
LinkedBlockingQueue<Stanza>();
     private boolean closed = false;
     private boolean switchToTLSCalled;
     private boolean isReopeningXMLStream;
@@ -109,6 +111,14 @@
         return recordedResponses.poll();
     }
 
+    public Stanza getNextRecordedResponse(long maxWaitMillis) {
+        try {
+            return recordedResponses.poll(maxWaitMillis, 
TimeUnit.MILLISECONDS);
+        } catch (InterruptedException e) {
+            return null;
+        }
+    }
+
     public Stanza getNextRecordedResponseForResource(String resource) {
         for (Iterator<Stanza> it = recordedResponses.iterator(); 
it.hasNext();) {
             Stanza recordedResponse = it.next();


Reply via email to