package com.uaihebert.uaimockserver.runner;
import com.uaihebert.uaimockserver.server.UaiMockServer;
import org.junit.runner.notification.RunNotifier;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
public class UaiMockServerRunner extends BlockJUnit4ClassRunner {
private final UaiRunnerMockServerConfiguration configuration;
public UaiMockServerRunner(Class<?> testClass) throws InitializationError {
super(testClass);
configuration = testClass.getAnnotation(UaiRunnerMockServerConfiguration.class);
}
@Override
public void run(final RunNotifier notifier) {
final UaiMockServer uaiMockServer = startServer();
try {
super.run(notifier);
} finally {
uaiMockServer.shutdown();
}
}
private UaiMockServer startServer() {
if (configuration == null) {
return UaiMockServer.start();
}
return UaiMockServer.start(configuration.configurationFile());
}
}