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