You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/06/29 17:55:08 UTC

[02/13] incubator-tinkerpop git commit: Dynamically select an open port for mock gephi server.

Dynamically select an open port for mock gephi server.

Wiremock doesn't seem to throw an exception if it runs into some sort of port conflict which leads to odd test failures.  This solution is of course subject to race conditions, but it seems satisfactory for what we're doing.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/93f6c8e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/93f6c8e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/93f6c8e8

Branch: refs/heads/resultset-refactor
Commit: 93f6c8e8c172518673302434c0e6cf9dacce0341
Parents: 2c5474b
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Jun 26 15:33:41 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Jun 26 15:33:41 2015 -0400

----------------------------------------------------------------------
 .../plugin/GephiRemoteAcceptorIntegrateTest.java   | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/93f6c8e8/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GephiRemoteAcceptorIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GephiRemoteAcceptorIntegrateTest.java b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GephiRemoteAcceptorIntegrateTest.java
index d75b736..247fae7 100644
--- a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GephiRemoteAcceptorIntegrateTest.java
+++ b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GephiRemoteAcceptorIntegrateTest.java
@@ -30,8 +30,10 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.net.ServerSocket;
 import java.util.Arrays;
 import java.util.Collections;
 
@@ -51,6 +53,8 @@ import static org.junit.Assert.assertThat;
  */
 public class GephiRemoteAcceptorIntegrateTest {
     private static final Groovysh groovysh = new GremlinGroovysh();
+    private static int port = pickOpenPort();
+
     private GephiRemoteAcceptor acceptor;
 
     private final InputStream inputStream  = new NullInputStream(0);
@@ -59,16 +63,17 @@ public class GephiRemoteAcceptorIntegrateTest {
     private final IO io = new IO(inputStream, outputStream, errorStream);
 
     @Rule
-    public WireMockRule wireMockRule = new WireMockRule(8080);
+    public WireMockRule wireMockRule = new WireMockRule(port);
 
     @Before
     public void before() throws Exception {
         acceptor = new GephiRemoteAcceptor(groovysh, io);
+        acceptor.configure(Arrays.asList("port", String.valueOf(port)));
     }
 
     @Test
     public void shouldConnectWithDefaults() throws RemoteException {
-        assertThat(acceptor.connect(Collections.emptyList()).toString(), startsWith("Connection to Gephi - http://localhost:8080/workspace0"));
+        assertThat(acceptor.connect(Collections.emptyList()).toString(), startsWith("Connection to Gephi - http://localhost:" + port + "/workspace0"));
     }
 
     @Test
@@ -105,4 +110,12 @@ public class GephiRemoteAcceptorIntegrateTest {
 
         wireMockRule.verify(10, postRequestedFor(urlPathEqualTo("/workspace0")));
     }
+
+    private static int pickOpenPort() {
+        try (final ServerSocket socket = new ServerSocket(0)) {
+            return socket.getLocalPort();
+        } catch (IOException ioe) {
+            throw new RuntimeException(ioe);
+        }
+    }
 }