package infrastructure;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class MockSystemUnderTest extends AbstractHandler {
private String cannedResponse = "";
private String lastRequest = "No requests received yet.";
private Server server;
public MockSystemUnderTest(String cannedResponse) {
this.cannedResponse = cannedResponse;
}
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
lastRequest = new Scanner(request.getInputStream()).useDelimiter("\\Z").next();
response.setContentType("text/xml;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().print(cannedResponse);
}
public void startServer() throws Exception {
server = new Server(8080);
server.setHandler(this);
server.start();
}
public void stopServer() throws Exception {
server.stop();
}
public String getLastRequest() {
return lastRequest;
}
public static void main(final String[] args) throws Exception {
File responseFile = new File("/Users/rboucher/projects/winston_wolfe/src/examples/US4274/Available/OP.xml");
String response = new Scanner(responseFile).useDelimiter("\\Z").next();
MockSystemUnderTest system = new MockSystemUnderTest(response);
system.startServer();
system.server.join();
}
}