com.github.dreamhead.moco.Runner Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of moco-core Show documentation
Show all versions of moco-core Show documentation
Moco is an easy setup stub framework, mainly focusing on testing and integration.
package com.github.dreamhead.moco;
import com.github.dreamhead.moco.internal.ActualHttpServer;
import com.github.dreamhead.moco.internal.ActualSocketServer;
import com.github.dreamhead.moco.internal.MocoHttpServer;
import com.github.dreamhead.moco.internal.MocoSocketServer;
import static com.google.common.base.Preconditions.checkNotNull;
public abstract class Runner {
public static void running(final HttpServer httpServer, final Runnable runnable) throws Exception {
doRunning(runner(checkNotNull(httpServer)), checkNotNull(runnable));
}
public static void running(final HttpsServer httpServer, final Runnable runnable) throws Exception {
doRunning(runner(checkNotNull(httpServer)), checkNotNull(runnable));
}
public static void running(final SocketServer server, final Runnable runnable) throws Exception {
doRunning(runner(checkNotNull(server)), checkNotNull(runnable));
}
private static void doRunning(final Runner server, final Runnable runnable) throws Exception {
try {
server.start();
runnable.run();
} finally {
server.stop();
}
}
public static Runner runner(final HttpServer server) {
return new MocoHttpServer((ActualHttpServer) checkNotNull(server, "Server should not be null"));
}
public static Runner runner(final SocketServer server) {
return new MocoSocketServer((ActualSocketServer) checkNotNull(server, "Server should not be null"));
}
public abstract void start();
public abstract void stop();
}