diff --git a/src/main/Main.java b/src/main/Main.java index 673e24c..9cbaa7a 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -12,6 +12,7 @@ static ArrayList formParam = new ArrayList<>(); static ArrayList pathParam = new ArrayList<>(); static NecessaryParam nes = new NecessaryParam(); + static RemoveJsonParam remove = new RemoveJsonParam(); static TestCactus get = new TestGETCactus(); static TestCactus post = new TestCreatePOSTCactus("f", "f", "f"); static TestCactus logout = new TestLogoutPOSTCactus("h41ZoL44toLq3Kg7B1aXreHjcjluAsoyz8DezqiXJ28s1atiGR5UHFOqi7Or3xOD"); @@ -19,11 +20,11 @@ static TestCactus delete = new TestDELETECactus("qF9bgKYZmw8P"); public static void main(String[] args) { - logout.start(); -// init(); +// logout.start(); + init(); // api.jsonAcquisition("src/main/you.json"); // System.out.println(api.getReadJson()); -// System.out.println(api.jsonRemove(api.getReadJson(), "snippet")); +// System.out.println(api.jsonRemove("{\"snippet\":{\"title\":\"aaa\",\"status\":\"e\"}}", remove)); // api.doRestTest(); // System.out.println(api.getResults()); } @@ -41,8 +42,10 @@ "ya29.GltwBvF7RosPhYHUlEnGaorRpqpdyD1nwRAm4m3rNihRsIZV5ZgZsL3PB_3jwMJTKF1huWkKkorUPiCsunGfMySzxfutzX4y0RN9f4iw8GxFyPHBEkPZHbxsgSXF")); api.getGetnesParam().setPathParams("playlists"); // api.setProperty("Content-type", "application/json"); - api.setRemoveParam("etag"); + api.setRemoveParam(new RemoveJsonParam("etag",new ArrayList<>())); api.setupRestTest(Method.GET, queryParam, formParam, pathParam); + remove.setRemoveParam("title"); + remove.setNode("snippet"); } } diff --git a/src/restfulchecker/RemoveJsonParam.java b/src/restfulchecker/RemoveJsonParam.java index 53082ac..9654834 100644 --- a/src/restfulchecker/RemoveJsonParam.java +++ b/src/restfulchecker/RemoveJsonParam.java @@ -6,6 +6,15 @@ private ArrayList node = new ArrayList<>(); private String removeParam; + public RemoveJsonParam() { + + } + + public RemoveJsonParam(String removeParam, ArrayList node) { + this.removeParam = removeParam; + this.node = node; + } + public ArrayList getNode() { return node; } @@ -14,6 +23,10 @@ this.node = node; } + public void setNode(String node) { + this.node.add(node); + } + public String getRemoveParam() { return removeParam; } diff --git a/src/restfulchecker/RestChecker.java b/src/restfulchecker/RestChecker.java index c4c8272..426c203 100644 --- a/src/restfulchecker/RestChecker.java +++ b/src/restfulchecker/RestChecker.java @@ -27,7 +27,7 @@ private ArrayList keys = new ArrayList<>(); private ArrayList values = new ArrayList<>(); private NecessaryParam getnesParam = new NecessaryParam(); - private ArrayList removeParam = new ArrayList<>(); + private ArrayList removeParam = new ArrayList<>(); private String readJson; private boolean isRemove = false; @@ -43,7 +43,7 @@ accounts.add(new RestAccount(url)); } - public void setRemoveParam(String removeParam) { + public void setRemoveParam(RemoveJsonParam removeParam) { this.removeParam.add(removeParam); } @@ -112,7 +112,7 @@ account.doAnything(); responses.add(account.getResponseCode()); String receive = account.doReceive(); - for (String remove : removeParam) { + for (RemoveJsonParam remove : removeParam) { jsonRemove(receive, remove); isRemove = true; } @@ -181,7 +181,7 @@ } account.doAnything(); String receive = account.doReceive(); - for (String remove : removeParam) { + for (RemoveJsonParam remove : removeParam) { receive = jsonRemove(receive, remove); isRemove = true; } @@ -233,6 +233,33 @@ return obj.toString(); } + public String jsonRemove(String JsonString, RemoveJsonParam param) { + try { + JsonNode json = new ObjectMapper().readTree(JsonString); + JsonNode current = json; + for (String node : param.getNode()) { + current = json.get(node); + } + ObjectNode obj = (ObjectNode) current; + obj.remove(param.getRemoveParam()); + return json.toString(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return null; + } + } + + public String jsonRemove(JsonNode Json, RemoveJsonParam param) { + JsonNode current = Json; + for (String node : param.getNode()) { + current = current.get(node); + } + ObjectNode obj = (ObjectNode) current; + obj.remove(param.getRemoveParam()); + return Json.toString(); + } + public enum Method { GET, POST, PUT, DELETE }; diff --git a/src/testcase/TestPUTCactus.java b/src/testcase/TestPUTCactus.java index bb6ad23..a7c35a9 100644 --- a/src/testcase/TestPUTCactus.java +++ b/src/testcase/TestPUTCactus.java @@ -1,5 +1,7 @@ package testcase; +import java.util.ArrayList; + import restfulchecker.*; import restfulchecker.RestChecker.Method; @@ -10,6 +12,6 @@ form.add(new RestParam("userID", userID)); form.add(new RestParam("userPass", userPass)); check.setupRestTest(Method.PUT, query, form, path); - check.setRemoveParam("token"); + check.setRemoveParam(new RemoveJsonParam("token",new ArrayList<>())); } }