parent
2424ea9590
commit
5e647c4408
@ -1,2 +0,0 @@
|
|||||||
#### About
|
|
||||||
Mockup for easy debugging.
|
|
@ -1,80 +0,0 @@
|
|||||||
import org.mockito.Mockito;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletRequestWrapper;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.net.http.HttpRequest;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class BridgeFake extends ServerFake {
|
|
||||||
|
|
||||||
public BridgeFake(){
|
|
||||||
MainFake.bridgeFake = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
while (true){
|
|
||||||
if (requests.size()>0 && responses.size()>0) {
|
|
||||||
try {
|
|
||||||
process(requests.remove(0), responses.remove(0));
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
System.out.println("BridgeFake.run() knows "+MainFake.clientFake.toString());
|
|
||||||
Thread.sleep(1000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
||||||
|
|
||||||
String body = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
|
|
||||||
|
|
||||||
|
|
||||||
if (body.contains("LINK")) {
|
|
||||||
|
|
||||||
} else {
|
|
||||||
Ride suppliedRide = new Ride(body);
|
|
||||||
if (suppliedRide.getRideID() != null) {
|
|
||||||
sendDummy(response);
|
|
||||||
} else if (suppliedRide.getRequest() != null) {
|
|
||||||
sendDummy(response);
|
|
||||||
} else if (suppliedRide.getData() != null) {
|
|
||||||
sendDummy(response);
|
|
||||||
} else {
|
|
||||||
// ERROR
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void doPost(HttpServletRequest request, HttpServletResponse response) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void sendDummy(HttpServletResponse response) throws IOException {
|
|
||||||
Ride dummyRide = new Ride();
|
|
||||||
dummyRide.setRequest("dummyRequest");
|
|
||||||
dummyRide.setData("dummyData");
|
|
||||||
|
|
||||||
|
|
||||||
HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
|
|
||||||
|
|
||||||
|
|
||||||
response.setStatus(200);
|
|
||||||
response.setContentType("application/json");
|
|
||||||
PrintWriter writer = response.getWriter();
|
|
||||||
writer.println(dummyRide.json());
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.http.HttpRequest;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class ClientFake extends ServerFake {
|
|
||||||
|
|
||||||
public ClientFake(){
|
|
||||||
MainFake.clientFake = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
while (true){
|
|
||||||
if (requests.size()>0 && responses.size()>0) {
|
|
||||||
try {
|
|
||||||
process(requests.remove(0), responses.remove(0));
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
System.out.println("ClientFake.run() knows "+MainFake.bridgeFake.toString());
|
|
||||||
Thread.sleep(1000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void doPost(HttpServletRequest request, HttpServletResponse response) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
public class MainFake {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static BridgeFake bridgeFake;
|
|
||||||
public static ClientFake clientFake;
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String... args){
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Runnable bridgeRunable = new BridgeFake();
|
|
||||||
Runnable clientRunnable = new ClientFake();
|
|
||||||
|
|
||||||
Thread bridgeThread = new Thread(bridgeRunable);
|
|
||||||
Thread clientThread = new Thread(clientRunnable);
|
|
||||||
bridgeThread.start();
|
|
||||||
clientThread.start();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.http.HttpRequest;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class ServerFake implements Runnable {
|
|
||||||
|
|
||||||
|
|
||||||
List<HttpServletResponse> responses = new ArrayList<>();
|
|
||||||
List<HttpServletRequest> requests = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public abstract void run();
|
|
||||||
|
|
||||||
|
|
||||||
public void process(HttpServletRequest request,HttpServletResponse response) throws IOException {
|
|
||||||
if (request.getMethod().equalsIgnoreCase("GET")){
|
|
||||||
doGet(request,response);
|
|
||||||
} else if(request.getMethod().equalsIgnoreCase("POST")){
|
|
||||||
doPost(request,response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
abstract void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException;
|
|
||||||
|
|
||||||
abstract void doPost(HttpServletRequest request, HttpServletResponse response);
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,9 @@
|
|||||||
|
#### About
|
||||||
|
Mockup for easy debugging.
|
||||||
|
* There are 4 actors which are mocked:
|
||||||
|
* `AppMock` : the App hosted on *localhost*.
|
||||||
|
* `ClientMock` : the *mispclient* Servlet.
|
||||||
|
* `BridgeMock` : the *mispbridge* Servlet.
|
||||||
|
* `PubicMock` : the user agent accessing the *mispbridge* from the internet.
|
||||||
|
* `MockSet` knows all 4 actors, all the 4 actors know `MockSet`.
|
||||||
|
* Thus all 4 actors know each other.
|
@ -0,0 +1,66 @@
|
|||||||
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic Runnable.
|
||||||
|
* Serves as basis for Actors that are not Servlets.
|
||||||
|
*/
|
||||||
|
public abstract class ActorRunnable implements Runnable {
|
||||||
|
|
||||||
|
|
||||||
|
List<HttpServletResponse> responses = new ArrayList<>();
|
||||||
|
List<HttpServletRequest> requests = new ArrayList<>();
|
||||||
|
|
||||||
|
protected MockSet mockSet;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public ActorRunnable(MockSet mockSet){
|
||||||
|
this.mockSet = mockSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
while (true) {
|
||||||
|
if (requests.size() > 0) {
|
||||||
|
try {
|
||||||
|
processRequests(requests.remove(0));
|
||||||
|
|
||||||
|
} catch (IOException | ServletException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Thread.sleep(100);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void processRequests(HttpServletRequest request) throws IOException, ServletException {
|
||||||
|
HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
||||||
|
|
||||||
|
if (request.getMethod().equalsIgnoreCase("GET")) {
|
||||||
|
doGet(request, response);
|
||||||
|
} else if (request.getMethod().equalsIgnoreCase("POST")) {
|
||||||
|
doPost(request, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
abstract void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException;
|
||||||
|
|
||||||
|
abstract void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class AppMock extends ActorRunnable {
|
||||||
|
|
||||||
|
public AppMock(MockSet mockSet){
|
||||||
|
super(mockSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
|
|
||||||
|
|
||||||
|
HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
|
||||||
|
//Main.clientRunnable.responses.add(mockResponse);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void doPost(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
public class BridgeMock extends BridgeServlet {
|
||||||
|
|
||||||
|
private MockSet mockSet;
|
||||||
|
|
||||||
|
public BridgeMock(MockSet mockSet){
|
||||||
|
super();
|
||||||
|
mockSet.bridgeMock=this;
|
||||||
|
this.mockSet = mockSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pass the MockSet.
|
||||||
|
* Provide a Runnable.
|
||||||
|
*/
|
||||||
|
public class BridgeRunnable implements Runnable {
|
||||||
|
|
||||||
|
MockSet mockSet;
|
||||||
|
|
||||||
|
public BridgeRunnable(MockSet mockSet){
|
||||||
|
super();
|
||||||
|
this.mockSet = mockSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
new BridgeMock(mockSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
|
import org.springframework.mock.web.MockHttpServletResponse;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps a ClientServlet so it can be debugged easily, i.e. without running Tomcat.
|
||||||
|
*/
|
||||||
|
public class ClientMock extends ClientServlet {
|
||||||
|
|
||||||
|
private MockSet mockSet;
|
||||||
|
|
||||||
|
public ClientMock(MockSet mockSet){
|
||||||
|
super();
|
||||||
|
mockSet.clientMock = this;
|
||||||
|
this.mockSet = mockSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
Ride sendPostRide(Ride ride) throws IOException, ServletException {
|
||||||
|
// SUPER ILLEGAL MOCKING
|
||||||
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||||
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||||
|
mockSet.bridgeMock.doPost(request,response);
|
||||||
|
return super.sendPostRide(ride);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pass the MockSet.
|
||||||
|
* Provide a Runnable.
|
||||||
|
*/
|
||||||
|
public class ClientRunnable implements Runnable {
|
||||||
|
|
||||||
|
private MockSet mockSet;
|
||||||
|
|
||||||
|
public ClientRunnable(MockSet mockSet){
|
||||||
|
super();
|
||||||
|
this.mockSet = mockSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
new ClientMock(mockSet);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
public class Main {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String... args){
|
||||||
|
|
||||||
|
MockSet mockSet = new MockSet();
|
||||||
|
|
||||||
|
Runnable publicRunnable = new PublicMock(mockSet);
|
||||||
|
Runnable bridgeRunable = new BridgeRunnable(mockSet);
|
||||||
|
Runnable clientRunnable = new ClientRunnable(mockSet);
|
||||||
|
Runnable appRunnable = new AppMock(mockSet);
|
||||||
|
|
||||||
|
Thread publicThread = new Thread(publicRunnable);
|
||||||
|
Thread bridgeThread = new Thread(bridgeRunable);
|
||||||
|
Thread clientThread = new Thread(clientRunnable);
|
||||||
|
Thread appThread = new Thread(appRunnable);
|
||||||
|
|
||||||
|
publicThread.start();
|
||||||
|
bridgeThread.start();
|
||||||
|
clientThread.start();
|
||||||
|
appThread.start();
|
||||||
|
|
||||||
|
int br =0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
public class MockSet {
|
||||||
|
PublicMock publicMock;
|
||||||
|
BridgeMock bridgeMock;
|
||||||
|
ClientMock clientMock;
|
||||||
|
AppMock appMock;
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class PublicMock extends ActorRunnable {
|
||||||
|
|
||||||
|
|
||||||
|
public PublicMock(MockSet mockSet){
|
||||||
|
super(mockSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void doPost(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue