package com.hubspot.jackson.jaxrs; import java.io.IOException; import java.net.URL; import org.assertj.core.util.Strings; import org.eclipse.jetty.server.Server; import org.junit.AfterClass; import org.junit.BeforeClass; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectReader; import com.hubspot.jackson.jaxrs.util.Helper; public abstract class BaseTest { private static ObjectReader reader = new ObjectMapper().reader(); private static Server server; private static int port; @BeforeClass public static void start() throws Exception { server = Helper.INSTANCE.startServer(); port = Helper.INSTANCE.getPort(server); } @AfterClass public static void stop() throws Exception { if (server != null) { server.stop(); } } protected <T> T getObjects(TypeReference<T> typeReference, String path, String queryParamName, String... queryParams) throws IOException { String urlString = "http://localhost:" + port + "/test" + path; if (queryParams.length > 0) { urlString += "?" + queryParamName + "=" + Strings.join(queryParams).with("&" + queryParamName + "="); } URL url = new URL(urlString); return reader.forType(typeReference).readValue(url.openStream()); } }