From 347b20a8edac1ecbb83eaef4dd457c4604c9c627 Mon Sep 17 00:00:00 2001 From: Ivan Olexyn Date: Fri, 17 Apr 2020 18:39:15 +0200 Subject: [PATCH] + mockup idea --- mispfake/src/BridgeFake.java | 80 ++++++++++++++++++++++++++++++++++++ mispfake/src/ClientFake.java | 43 +++++++++++++++++++ mispfake/src/MainFake.java | 23 +++++++++++ mispfake/src/ServerFake.java | 38 +++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 mispfake/src/BridgeFake.java create mode 100644 mispfake/src/ClientFake.java create mode 100644 mispfake/src/MainFake.java create mode 100644 mispfake/src/ServerFake.java diff --git a/mispfake/src/BridgeFake.java b/mispfake/src/BridgeFake.java new file mode 100644 index 0000000..a36aae6 --- /dev/null +++ b/mispfake/src/BridgeFake.java @@ -0,0 +1,80 @@ +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()); + } +} diff --git a/mispfake/src/ClientFake.java b/mispfake/src/ClientFake.java new file mode 100644 index 0000000..e135b3a --- /dev/null +++ b/mispfake/src/ClientFake.java @@ -0,0 +1,43 @@ +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) { + + } +} diff --git a/mispfake/src/MainFake.java b/mispfake/src/MainFake.java new file mode 100644 index 0000000..ad85c89 --- /dev/null +++ b/mispfake/src/MainFake.java @@ -0,0 +1,23 @@ +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(); + + } +} diff --git a/mispfake/src/ServerFake.java b/mispfake/src/ServerFake.java new file mode 100644 index 0000000..61f8134 --- /dev/null +++ b/mispfake/src/ServerFake.java @@ -0,0 +1,38 @@ +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 responses = new ArrayList<>(); + List 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); + +}