package com.uaihebert.uaimockserver.runner; import com.uaihebert.uaimockserver.server.UaiMockServer; import org.junit.runner.notification.RunNotifier; import org.junit.runners.model.InitializationError; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; public class UaiMockServerSpringRunner extends SpringJUnit4ClassRunner { private final UaiRunnerMockServerConfiguration configuration; public UaiMockServerSpringRunner(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()); } }