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();