Created
June 27, 2018 16:52
-
-
Save ptaylor/06d457cc4a4b226290dcae257dc8154d to your computer and use it in GitHub Desktop.
Unit test with HTTP server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.example.service; | |
import org.eclipse.jetty.server.Server; | |
import org.eclipse.jetty.servlet.ServletContextHandler; | |
import org.eclipse.jetty.servlet.ServletHolder; | |
import org.json.simple.JSONObject; | |
import org.json.simple.parser.JSONParser; | |
import org.junit.After; | |
import org.junit.Before; | |
import org.junit.Test; | |
import org.springframework.core.io.ClassPathResource; | |
import javax.servlet.ServletException; | |
import javax.servlet.http.HttpServlet; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import java.io.IOException; | |
import java.util.List; | |
import java.util.Random; | |
import java.util.Scanner; | |
import java.util.stream.Collectors; | |
import static org.junit.Assert.assertEquals; | |
import static org.junit.jupiter.api.Assertions.assertNotNull; | |
public class ServiceTest { | |
Server server; | |
public class TestServlet extends HttpServlet { | |
protected void doPost( | |
HttpServletRequest request, | |
HttpServletResponse response) | |
throws ServletException, IOException { | |
int status = HttpServletResponse.SC_SERVICE_UNAVAILABLE; | |
String output = ""; | |
try { | |
System.out.println("path: " + request.getServletPath()); | |
String requestData = request.getReader().lines().collect(Collectors.joining()); | |
System.out.println("requestdata: " + requestData); | |
response.setContentType("application/json"); | |
JSONObject json = (JSONObject) new JSONParser().parse(requestData); | |
String path = "/test_data/" + json.get("id") + "_" + json.get("startDate") + "_" + json.get("endDate") + ".json"; | |
System.out.println("Reading test data from: " + path); | |
output = new Scanner(this.getClass().getResourceAsStream(path), "UTF-8").useDelimiter("\\A").next(); | |
System.out.println("test data: " + output); | |
status = HttpServletResponse.SC_OK; | |
} catch (Exception e) { | |
System.out.println("excpetion " + e); | |
output = "Exception " + e; | |
} | |
response.setStatus(status); | |
response.getWriter().write(output); | |
} | |
} | |
@Before | |
public void setUp() throws Exception { | |
int port = new Random().nextInt(1000) + 9000; | |
System.out.println("port: " + port); | |
server = new Server(port); | |
ServletContextHandler context = new ServletContextHandler(); | |
ServletHolder holder = new ServletHolder(new TestServlet()); | |
context.addServlet(holder, "/getData"); | |
server.setHandler(context); | |
server.start(); | |
String endpoint = "http://localhost:" + port + "/"; | |
} | |
@After | |
public void close() throws Exception { | |
server.stop(); | |
} | |
@Test | |
public void txnSearchCallsAPIAndReturnsResult() throws Exception { | |
// ... | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment