You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2010/05/08 10:36:04 UTC

svn commit: r942344 - in /mina/vysper/trunk: ./ server/core-inttest/src/main/ server/core-inttest/src/main/config/ server/core-inttest/src/test/java/org/apache/vysper/smack/ server/core/ server/core/src/test/java/org/apache/vysper/smack/ server/extensi...

Author: ngn
Date: Sat May  8 08:36:03 2010
New Revision: 942344

URL: http://svn.apache.org/viewvc?rev=942344&view=rev
Log:
Refactoring and cleanup of the int tests

Added:
    mina/vysper/trunk/server/core-inttest/src/main/
    mina/vysper/trunk/server/core-inttest/src/main/config/
    mina/vysper/trunk/server/core-inttest/src/main/config/bogus_mina_tls.cert   (with props)
    mina/vysper/trunk/server/core-inttest/src/test/java/org/apache/vysper/smack/
      - copied from r940884, mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/smack/
    mina/vysper/trunk/server/extensions/xep0045-muc-inttest/src/main/
    mina/vysper/trunk/server/extensions/xep0045-muc-inttest/src/main/config/
    mina/vysper/trunk/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert   (with props)
    mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java
Removed:
    mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/smack/
Modified:
    mina/vysper/trunk/pom.xml
    mina/vysper/trunk/server/core/pom.xml
    mina/vysper/trunk/server/extensions/xep0045-muc/pom.xml
    mina/vysper/trunk/server/extensions/xep0060-pubsub/pom.xml
    mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java

Modified: mina/vysper/trunk/pom.xml
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/pom.xml?rev=942344&r1=942343&r2=942344&view=diff
==============================================================================
--- mina/vysper/trunk/pom.xml (original)
+++ mina/vysper/trunk/pom.xml Sat May  8 08:36:03 2010
@@ -289,15 +289,6 @@
     </pluginManagement>
 
     <plugins>
-	  <plugin>
-        <artifactId>maven-surefire-plugin</artifactId>
-		<configuration>
-          <excludes>
-            <exclude>**/*IntegrationTestCase*</exclude>
-      	  </excludes>
-        </configuration>
-      </plugin>
-	
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>apt-maven-plugin</artifactId>

Added: mina/vysper/trunk/server/core-inttest/src/main/config/bogus_mina_tls.cert
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core-inttest/src/main/config/bogus_mina_tls.cert?rev=942344&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mina/vysper/trunk/server/core-inttest/src/main/config/bogus_mina_tls.cert
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: mina/vysper/trunk/server/core/pom.xml
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/pom.xml?rev=942344&r1=942343&r2=942344&view=diff
==============================================================================
--- mina/vysper/trunk/server/core/pom.xml (original)
+++ mina/vysper/trunk/server/core/pom.xml Sat May  8 08:36:03 2010
@@ -112,33 +112,6 @@
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-
-    <dependency>
-      <groupId>jivesoftware</groupId>
-      <artifactId>smack</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>jivesoftware</groupId>
-      <artifactId>smackx</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-	</plugins>
-  </build>
 </project>

Added: mina/vysper/trunk/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert?rev=942344&view=auto
==============================================================================
Binary file - no diff available.

Propchange: mina/vysper/trunk/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: mina/vysper/trunk/server/extensions/xep0045-muc/pom.xml
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/pom.xml?rev=942344&r1=942343&r2=942344&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0045-muc/pom.xml (original)
+++ mina/vysper/trunk/server/extensions/xep0045-muc/pom.xml Sat May  8 08:36:03 2010
@@ -35,6 +35,7 @@
       <artifactId>spec-compliance</artifactId>
       <optional>true</optional>
     </dependency>
+    
     <dependency>
       <groupId>org.apache.vysper</groupId>
       <artifactId>vysper-core</artifactId>
@@ -59,18 +60,5 @@
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-    
-    <dependency>
-      <groupId>jivesoftware</groupId>
-      <artifactId>smack</artifactId>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>jivesoftware</groupId>
-      <artifactId>smackx</artifactId>
-      <scope>test</scope>
-    </dependency>
-    
   </dependencies>
 </project>

Modified: mina/vysper/trunk/server/extensions/xep0060-pubsub/pom.xml
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0060-pubsub/pom.xml?rev=942344&r1=942343&r2=942344&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0060-pubsub/pom.xml (original)
+++ mina/vysper/trunk/server/extensions/xep0060-pubsub/pom.xml Sat May  8 08:36:03 2010
@@ -35,6 +35,7 @@
       <artifactId>spec-compliance</artifactId>
       <optional>true</optional>
     </dependency>
+    
     <dependency>
       <groupId>org.apache.vysper</groupId>
       <artifactId>vysper-core</artifactId>
@@ -48,15 +49,6 @@
     </dependency>
     
     <dependency>
-      <groupId>org.apache.vysper</groupId>
-      <artifactId>vysper-core</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-      <optional>true</optional>
-    </dependency>
-    
-    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <scope>test</scope>

Modified: mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java?rev=942344&r1=942343&r2=942344&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java (original)
+++ mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java Sat May  8 08:36:03 2010
@@ -35,7 +35,6 @@ import org.apache.vysper.xmpp.protocol.R
 import org.apache.vysper.xmpp.protocol.SessionStateHolder;
 import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
 import org.apache.vysper.xmpp.server.SessionState;
-import org.apache.vysper.xmpp.server.TestSessionContext;
 import org.apache.vysper.xmpp.stanza.Stanza;
 import org.apache.vysper.xmpp.state.resourcebinding.ResourceState;
 import org.apache.vysper.xmpp.writer.SystemOutStanzaWriter;

Added: mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java?rev=942344&view=auto
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java (added)
+++ mina/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java Sat May  8 08:36:03 2010
@@ -0,0 +1,194 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+
+import java.util.Iterator;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.addressing.EntityImpl;
+import org.apache.vysper.xmpp.delivery.RecordingStanzaRelay;
+import org.apache.vysper.xmpp.delivery.StanzaReceiverQueue;
+import org.apache.vysper.xmpp.delivery.StanzaReceiverRelay;
+import org.apache.vysper.xmpp.protocol.SessionStateHolder;
+import org.apache.vysper.xmpp.server.AbstractSessionContext;
+import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
+import org.apache.vysper.xmpp.server.ServerRuntimeContext;
+import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.stanza.Stanza;
+import org.apache.vysper.xmpp.writer.StanzaWriter;
+
+/**
+ * makes response available for testing
+ */
+public class TestSessionContext extends AbstractSessionContext implements StanzaWriter {
+
+    private LinkedBlockingQueue<Stanza> recordedResponses = new LinkedBlockingQueue<Stanza>();
+    private boolean closed = false;
+    private boolean switchToTLSCalled;
+    private boolean isReopeningXMLStream;
+    private int recordedResponsesTotal = 0;
+
+    /**
+     * creates a new session context (but doesn't set the runtime context)
+     * @param entity
+     * @return
+     */
+    public static TestSessionContext createSessionContext(Entity entity) {
+        SessionStateHolder sessionStateHolder = new SessionStateHolder();
+        TestSessionContext sessionContext = new TestSessionContext(sessionStateHolder);
+        if (entity != null) sessionContext.setInitiatingEntity(entity.getBareJID());
+        return sessionContext;
+    }
+
+    /**
+     * creates a new authenticated session and a new runtime context
+     * @return
+     */
+    public static TestSessionContext createWithStanzaReceiverRelayAuthenticated() {
+        SessionStateHolder sessionStateHolder = new SessionStateHolder();
+        sessionStateHolder.setState(SessionState.AUTHENTICATED);
+        return createWithStanzaReceiverRelay(sessionStateHolder);
+    }
+
+    /**
+     * creates a session and also creates a fresh runtime context for it
+     * @param sessionStateHolder
+     * @return
+     */
+    public static TestSessionContext createWithStanzaReceiverRelay(SessionStateHolder sessionStateHolder) {
+        StanzaReceiverRelay relay = new org.apache.vysper.xmpp.delivery.StanzaReceiverRelay();
+        DefaultServerRuntimeContext serverContext = new DefaultServerRuntimeContext(new EntityImpl(null, "test", null), relay);
+        relay.setServerRuntimeContext(serverContext);
+        return new TestSessionContext(serverContext, sessionStateHolder);
+    }
+
+    /**
+     * creates another session for an already created runtime context
+     * @param sessionStateHolder
+     * @param serverContext
+     * @return
+     */
+    public static TestSessionContext createWithStanzaReceiverRelay(SessionStateHolder sessionStateHolder, ServerRuntimeContext serverContext) {
+        StanzaReceiverRelay relay = (StanzaReceiverRelay)serverContext.getStanzaRelay();
+        relay.setServerRuntimeContext(serverContext);
+        return new TestSessionContext(serverContext, sessionStateHolder);
+    }
+
+    public TestSessionContext(SessionStateHolder sessionStateHolder) {
+        this(new DefaultServerRuntimeContext(
+                new EntityImpl(null, "test", null), 
+                new RecordingStanzaRelay(), 
+                new MemoryStorageProviderRegistry()), 
+             sessionStateHolder);
+    }
+
+    public TestSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
+        super(serverRuntimeContext, sessionStateHolder);
+        sessionId = serverRuntimeContext.getNextSessionId();
+        xmlLang = "de";
+    }
+
+    public Stanza getNextRecordedResponse() {
+        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();
+            if (recordedResponse.getTo() != null && recordedResponse.getTo().isResourceSet()) {
+                if (recordedResponse.getTo().getResource().equals(resource)) {
+                    it.remove();
+                    return recordedResponse;
+                }
+            }
+        }
+        return null;
+    }
+
+    public void close() {
+        closed = true;
+    }
+
+    public boolean isClosed() {
+        return closed; // checks if close had been called
+    }
+
+    /**
+     * Resets all recorded stanzas and their count.
+     */
+    public void reset() {
+    	recordedResponses.clear();
+        recordedResponsesTotal = 0;
+    }
+    
+    /**
+     * @param stanza records the stanza.
+     */
+    public void write(Stanza stanza) {
+        recordedResponses.add(stanza);
+        recordedResponsesTotal++;
+    }
+
+    public void setSessionState(SessionState sessionState) {
+        this.sessionStateHolder.setState(sessionState);
+    }
+
+    public StanzaWriter getResponseWriter() {
+        return this;
+    }
+
+    public void switchToTLS() {
+        switchToTLSCalled = true;
+    }
+
+    public void setIsReopeningXMLStream() {
+        isReopeningXMLStream = true;
+    }
+
+    public boolean isSwitchToTLSCalled() {
+        return switchToTLSCalled;
+    }
+
+    public StanzaReceiverQueue addReceiver(Entity entity, String resourceId) {
+        if (!(getServerRuntimeContext().getStanzaRelay() instanceof StanzaReceiverRelay)) {
+            throw new RuntimeException("cannot add receiver - the stanza relay is of a different kind");
+        }
+        StanzaReceiverQueue relay = new StanzaReceiverQueue();
+        if (resourceId != null) entity = new EntityImpl(entity.getNode(), entity.getDomain(), resourceId);
+        ((StanzaReceiverRelay) getServerRuntimeContext().getStanzaRelay()).add(entity, relay);
+        return relay;
+    }
+
+    public int getRecordedResponsesTotal() {
+        return recordedResponsesTotal;
+    }
+}