Browse Source

Refactored WebDav test servers

* Moved common code into own type
Markus Kreusch 9 years ago
parent
commit
2c92435b91

+ 52 - 0
main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/FileSystemWebDabServer.java

@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Markus Kreusch and others.
+ * This file is licensed under the terms of the MIT license.
+ * See the LICENSE.txt file for more info.
+ *
+ * Contributors:
+ *     Markus Kreusch - initial API and implementation
+ *******************************************************************************/
+package org.cryptomator.frontend.webdav;
+
+import java.net.URI;
+import java.util.EnumSet;
+
+import javax.servlet.DispatcherType;
+
+import org.cryptomator.filesystem.FileSystem;
+import org.cryptomator.frontend.webdav.filters.LoggingHttpFilter;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+
+class FileSystemWebDabServer {
+
+	private static final WebDavComponent WEVDAV_COMP = DaggerWebDavComponent.create();
+
+	private final FileSystem fileSystem;
+
+	public FileSystemWebDabServer(FileSystem fileSystem) {
+		this.fileSystem = fileSystem;
+	}
+
+	public void run() {
+		try {
+			tryRun();
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	private void tryRun() throws Exception {
+		WebDavServer server = WEVDAV_COMP.server();
+		server.setPort(8080);
+		server.start();
+
+		ServletContextHandler servlet = server.addServlet(fileSystem, URI.create("http://localhost:8080/foo"));
+		servlet.addFilter(LoggingHttpFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
+		servlet.start();
+
+		System.out.println("Server started. Press any key to stop it...");
+		System.in.read();
+		server.stop();
+	}
+
+}

+ 1 - 20
main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/InMemoryWebDavServer.java

@@ -8,39 +8,20 @@
  *******************************************************************************/
 package org.cryptomator.frontend.webdav;
 
-import java.net.URI;
-import java.util.EnumSet;
-
-import javax.servlet.DispatcherType;
-
 import org.cryptomator.filesystem.FileSystem;
 import org.cryptomator.filesystem.crypto.CryptoEngineTestModule;
 import org.cryptomator.filesystem.crypto.CryptoFileSystemDelegate;
 import org.cryptomator.filesystem.crypto.CryptoFileSystemTestComponent;
 import org.cryptomator.filesystem.crypto.DaggerCryptoFileSystemTestComponent;
 import org.cryptomator.filesystem.inmem.InMemoryFileSystem;
-import org.cryptomator.frontend.webdav.filters.LoggingHttpFilter;
-import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.mockito.Mockito;
 
 public class InMemoryWebDavServer {
 
 	private static final CryptoFileSystemTestComponent CRYPTO_FS_COMP = DaggerCryptoFileSystemTestComponent.builder().cryptoEngineModule(new CryptoEngineTestModule()).build();
-	private static final WebDavComponent WEVDAV_COMP = DaggerWebDavComponent.create();
 
 	public static void main(String[] args) throws Exception {
-		WebDavServer server = WEVDAV_COMP.server();
-		server.setPort(8080);
-		server.start();
-
-		FileSystem fileSystem = cryptoFileSystem();
-		ServletContextHandler servlet = server.addServlet(fileSystem, URI.create("http://localhost:8080/foo"));
-		servlet.addFilter(LoggingHttpFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
-		servlet.start();
-
-		System.out.println("Server started. Press any key to stop it...");
-		System.in.read();
-		server.stop();
+		new FileSystemWebDabServer(cryptoFileSystem()).run();
 	}
 
 	private static FileSystem cryptoFileSystem() {

+ 2 - 20
main/frontend-webdav/src/test/java/org/cryptomator/frontend/webdav/NioWebDavServer.java

@@ -12,42 +12,24 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.UncheckedIOException;
-import java.net.URI;
 import java.nio.charset.Charset;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.util.EnumSet;
 import java.util.Optional;
 
-import javax.servlet.DispatcherType;
-
 import org.cryptomator.filesystem.FileSystem;
 import org.cryptomator.filesystem.nio.NioFileSystem;
-import org.cryptomator.frontend.webdav.filters.LoggingHttpFilter;
-import org.eclipse.jetty.servlet.ServletContextHandler;
 
 public class NioWebDavServer {
 
 	private static final String PATH_TO_SERVE_PROPERTY = "pathToServe";
-	private static final WebDavComponent WEVDAV_COMP = DaggerWebDavComponent.create();
 
 	public static void main(String[] args) throws Exception {
-		WebDavServer server = WEVDAV_COMP.server();
-		server.setPort(8080);
-		server.start();
-
-		FileSystem fileSystem = setupFilesystem();
-		ServletContextHandler servlet = server.addServlet(fileSystem, URI.create("http://localhost:8080/foo"));
-		servlet.addFilter(LoggingHttpFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
-		servlet.start();
-
-		System.out.println("Server started. Press any key to stop it...");
-		System.in.read();
-		server.stop();
+		new FileSystemWebDabServer(nioFileSystem()).run();
 	}
 
-	private static FileSystem setupFilesystem() {
+	private static FileSystem nioFileSystem() {
 		return NioFileSystem.rootedAt(pathToServe());
 	}